繁体   English   中英

正则表达式终止于字符或行尾

[英]Regex to terminate on character or end of line

我目前有这个(C#):

http:\/\/([^""']*[^""']*).*?((?=<)|(?=$))

如您所见,我正在尝试使用前行终止<或行尾的正则表达式。 上面的方法不起作用:(如果我删除|(?=$) ,则只有在字符串中<它才起作用。如何在<$发生时使正则表达式终止?(注意:我不会不想在结果中包含<

任何指针将不胜感激。

您还需要在字符类中添加<符号,否则捕获组也会贪婪地捕获<字符。

http:\/\/([^"'<]*[^"'<]*).*?(?=<|$)

DEMO

[^"'<]*[^"'<]*将被写为[^"'<]*

@"http:\/\/([^""'<]*).*?(?=<|$)"

如果原始字符串有多行,那么不要忘记在字符类中包含\\n 并且最好包含多行修饰符。

@"(?m)http:\/\/([^""'<\n]*).*?(?=<|$)"    

如何在<或$时终止正则表达式

您可以交替使用此先行:

(?=<|$)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM