我正在尝试编写一个正则表达式,用于选择两个字符之间的所有内容。
例如,当正则表达式遇到'§'
时,我希望它能够选择'§'
后面的所有内容,直到遇到';'
为止。我尝试过使用回顾后发和预测先行,但它们并不能完全胜任此任务。
因此,例如" § 1-2 bla; "
应返回" 1-2 bla"
。
非常感谢你的帮助!
我正在尝试编写一个正则表达式,用于选择两个字符之间的所有内容。
例如,当正则表达式遇到'§'
时,我希望它能够选择'§'
后面的所有内容,直到遇到';'
为止。我尝试过使用回顾后发和预测先行,但它们并不能完全胜任此任务。
因此,例如" § 1-2 bla; "
应返回" 1-2 bla"
。
非常感谢你的帮助!
怎么样?
"§([^;]*);"
在§
和;
之间选择的字符可用作匹配组1。
使用这个正则表达式
(?<=§).*?(?=;)
"_Åä³¢±Í¸¶°³"
这样被双引号包含的字符串在我的情况下有效,而其他答案则不行。 - SagunKho对于简单情况,这应该可以做到:
§(.*);
如果您不想允许嵌套,则可能需要进行修改:
§(.*?);
.*
是贪婪的,所以该表达式将匹配到最后一个遇到的 ;
,而不是第一个。 - Peter Boughton如果你有多个§(字符示例),可以使用:§([^§]*)§
它将忽略两个§之间的所有内容,仅获取特殊字符之间的内容,因此如果你有像§What§ kind of §bear§ is best
这样的内容,它会输出:§what§, §bear§
发生了什么?让我们分解表达式§、然后是([ ^ § ]*)、最后是§
[^§]
0次或多次*
希望对你有所帮助!