我有這樣的文字,我想捕捉正則表達式如何找到兩個字符串
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