我有这样的文字,我想捕捉正则表达式如何找到两个字符串
begin
text
end
begin
text
end
begin
text
end
的开始和结束之间的文本之间的文本。
/begin.*end/
这将捕获第一次开始和最后结束。
我有这样的文字,我想捕捉正则表达式如何找到两个字符串
begin
text
end
begin
text
end
begin
text
end
的开始和结束之间的文本之间的文本。
/begin.*end/
这将捕获第一次开始和最后结束。
如果您的文字中包含换行符(\n
或\r
),你需要添加“DOTALL”标志,您正则表达式,以及使你的比赛不愿意(即“非贪婪” )
根据您的正则表达式的味道:
/begin.*?end/s
(?s)begin.*?end
JS版本; '/ begin。*?end/s' [不能在regex101中工作](https://regex101.com/r/HzsPk7/1)而[python version](https://regex101.com/r/zsq4IQ/1)。我试图用'\ s'扫描,但没有匹配。 – Mikel
@Mike当然'/ begin。*?end/s'在regex 101中不起作用,因为正斜杠不是正则表达式的一部分。它们是js中的分隔符,但人们经常将它们包含在与js相关的正则表达式中,因为这就是它们的编码方式(即斜杠而不是引号,并且在正则表达式也用斜杠分隔后)。这类似于在一个答案中用非常引号来编码非js版本,比如'“(?s)begin。*?end”'(人们有时也这样做)。 – Bohemian
我可以用['begin [\ s \ S] *?end'](https://regex101.com/r/5wLcgR/2) – Mikel
术语是 “非贪婪”(而不是 “懒”) – Bohemian