我正在寻找一个模式,匹配所有的东西,直到第一次出现一个特定的字符,说一个“;”-分号。
我这样写道:
/^(.*);/
但它实际上匹配所有内容(包括分号),直到最后出现一个分号。
我正在寻找一个模式,匹配所有的东西,直到第一次出现一个特定的字符,说一个“;”-分号。
我这样写道:
/^(.*);/
但它实际上匹配所有内容(包括分号),直到最后出现一个分号。
当前回答
这对我很有帮助,因为我试图弄清楚如何匹配xml标记中的所有字符,包括属性。我遇到了“将所有内容匹配到最后”的问题:
/<simpleChoice.*>/
但能够解决这个问题:
/<simpleChoice[^>]*>/
读完这篇文章后。谢谢所有。
其他回答
这不是一个正则表达式解决方案,而是对您的问题描述足够简单的解决方案。只需分割字符串并从数组中获取第一项。
$str = "match everything until first ; blah ; blah end ";
$s = explode(";",$str,2);
print $s[0];
输出
$ php test.php
match everything until first
这将只匹配每个字符串中的第一个出现,并忽略后续出现。
/^([^;]*);*/
示例文本:
"this is a test sentence; to prove this regex; that is g;iven below"
例如,如果我们有上面的示例文本,正则表达式/(.*?\;)/将给出第一次出现分号(;)之前的所有内容,包括分号:"this is a test sentence;"
尝试/ [^;]* /
谷歌正则表达式字符类的详细信息。
这些建议的答案对我都不起作用。(例如在notepad++中) 但
^.*?(?=\;)
did.