2011-09-09 87 views

回答

12

让它懒惰 - /begin.*?end/

旁注:“懒”比不低于可接受的“非贪婪”是。 Exampleexampleexample

+7

术语是 “非贪婪”(而不是 “懒”) – Bohemian

4

如果您的文字中包含换行符(\n\r),你需要添加“DOTALL”标志,您正则表达式,以及使你的比赛不愿意(即“非贪婪” )

根据您的正则表达式的味道:

/begin.*?end/s 
(?s)begin.*?end 
+0

JS版本; '/ begin。*?end/s' [不能在regex101中工作](https://regex101.com/r/HzsPk7/1)而[python version](https://regex101.com/r/zsq4IQ/1)。我试图用'\ s'扫描,但没有匹配。 – Mikel

+0

@Mike当然'/ begin。*?end/s'在regex 101中不起作用,因为正斜杠不是正则表达式的一部分。它们是js中的分隔符,但人们经常将它们包含在与js相关的正则表达式中,因为这就是它们的编码方式(即斜杠而不是引号,并且在正则表达式也用斜杠分隔后)。这类似于在一个答案中用非常引号来编码非js版本,比如'“(?s)begin。*?end”'(人们有时也这样做)。 – Bohemian

+0

我可以用['begin [\ s \ S] *?end'](https://regex101.com/r/5wLcgR/2) – Mikel

相关问题