我正在寻找一个模式,匹配所有的东西,直到第一次出现一个特定的字符,说一个“;”-分号。

我这样写道:

/^(.*);/

但它实际上匹配所有内容(包括分号),直到最后出现一个分号。


当前回答

这对我很有帮助,因为我试图弄清楚如何匹配xml标记中的所有字符,包括属性。我遇到了“将所有内容匹配到最后”的问题:

/<simpleChoice.*>/

但能够解决这个问题:

/<simpleChoice[^>]*>/

读完这篇文章后。谢谢所有。

其他回答

/ ^ ^; * /

[^;]表示匹配除分号以外的任何内容。方括号是集合匹配操作符,本质上是,匹配这个字符集中的任何字符,开头的^使它成为逆匹配,所以匹配这个字符集之外的任何字符。

尝试/ [^;]* /

这是一个否定字符类。

会;

/^(.*?);/

工作吗?

的吗?是惰性操作符,因此正则表达式在匹配;之前抓取尽可能少的内容。

这些建议的答案对我都不起作用。(例如在notepad++中) 但

^.*?(?=\;)

did.

这适用于从一行开始到第一个单词的内容,

/^.*?([^\s]+)/gm