2011-09-09 77 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

相關問題