我正在尝试编写一个正则表达式(这对我来说绝对不是一个好主意)找到一个换行符模式,后面跟着字符<
因此模式只匹配此字符串一次:
some text\nsome more text\n<end of file>
任何帮助?
答案 0 :(得分:0)
这应该有效
(?s).*(?=<)
(?s)切换到单线模式,允许。匹配换行符,正向前瞻允许表达式停止在&lt;不消耗它(即将其添加到匹配中)
这里需要记住的是*是贪婪的,也就是说,它会在最后一场比赛中停止,而不是第一场比赛。因此,如果您在同一个文件中有<end of file>
两次,则它将匹配所有文本到第二个文本。
如果你想捕捉重复的eof标签(使用eof标签),你可以做这样的事情
(?s)([^>]+>)
或没有eof标签
(?s)([^<]+)(?:[^>]+>)
在这两种情况下,我们使用否定的字符类来匹配除&lt;之外的任何字符。或者&gt;。当其中一个被击中时,我们停止,并开始新的比赛。