[英]Regex to terminate on character or end of line
我目前有这个(C#):
http:\/\/([^""']*[^""']*).*?((?=<)|(?=$))
如您所见,我正在尝试使用前行终止<
或行尾的正则表达式。 上面的方法不起作用:(如果我删除|(?=$)
,则只有在字符串中<
它才起作用。如何在<
或$
发生时使正则表达式终止?(注意:我不会不想在结果中包含<
任何指针将不胜感激。
您还需要在字符类中添加<
符号,否则捕获组也会贪婪地捕获<
字符。
http:\/\/([^"'<]*[^"'<]*).*?(?=<|$)
该[^"'<]*[^"'<]*
将被写为[^"'<]*
,
@"http:\/\/([^""'<]*).*?(?=<|$)"
如果原始字符串有多行,那么不要忘记在字符类中包含\\n
。 并且最好包含多行修饰符。
@"(?m)http:\/\/([^""'<\n]*).*?(?=<|$)"
如何在<或$时终止正则表达式
您可以交替使用此先行:
(?=<|$)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.