Skip to main content
 首页 » 编程设计

c#之正则表达式在遇到分号后停止解析

2024年02月25日28pengyingh

我正在使用此正则表达式从分号分隔的字符串中解析 URL。

\b(?:https?:|http?:|www\.)\S+\b 

如果我的输入文本是这些格式,它工作正常:

    "Google;\"https://google.com\"" 
//output - https://google.com 
    "Yahoo;\"www.yahoo.com\"" 
//output - www.yahoo.com 

但在这种情况下它给出了不正确的字符串

"https://google.com;\"https://google.com\""  
//output - https://google.com;\"https://google.com 

遇到';'时如何停止解析?

请您参考如下方法:

查看您的示例,我会匹配引号之间的任何 URL。像这样:

(?<=")(?:https?:|www\.)[^"]* 

You can try it out here

或者如其他人所说,使用 string.Split 按分号字符拆分输入字符串,并按顺序检查每个字符串是否符合您的要求。