START Curabitur mollis, dolor ut rutrum consequat, arcu nisl ultrices diam, adipiscing aliquam ipsum metus id velit. Aenean vestibulum gravida felis, quis bibendum nisl
euismod ut.END
1 START xxx END
2 START xxx END
3 START xxx END
4 START xxx END
5 START xxx END
6 START xxx END
嗨,我想使用reg表达式来获取每个(START)和(END)中的文本,其中(START)和(END)中可以有换行符。
我尝试使用这个表达式
(START)(.*[\S\s]*)(END)
但它会突出显示所有文本,包括那些不在(START)和(END)内的文本。
如何在每个(START)和(END)中获取文本,其间有换行符?
答案 0 :(得分:0)
.*
部分在您的模式中是重复的,因为[\s\S]*
匹配相同的文字。
此外,您需要在*?
之后使用延迟量词[\s\S]
,以便在START
和END
之间匹配尽可能少的字符。详细了解greedy trap at rexegg.com。
使用
/START([\s\S]*?)END/g
或
/START([^]*?)END/g
请参阅regex demo