繁体   English   中英

正则表达式在引号之间匹配

[英]Regex with a match between quotes

我试图找到解决我的 RegEx 问题的方法,但我找不到答案。

我的目标字符串是这样的:

"Elevator" <sip:103@192.168.1.1>;tag=343483547

我希望我的匹配组是: - 电梯 - 103

但是当我使用这个正则表达式时:

"(.*)"?<sip:(\d*)@.*

然后我在第一场比赛中收到了不需要的报价。 结果是: - 电梯” - 103

我无法让它工作。 我尝试了最明显的事情,比如

"([^"]*)"?<sip:(\d*)@.*

但是第一场比赛完全消失了

我究竟做错了什么。

您正在使"成为可选,并且.*是贪婪匹配,直到遇到<

如果引号是不需要的,您可以更新它以使 " 不可选并匹配<之前的空格。

"(.*?)"部分也可以匹配为([^"]+)

如果要匹配 1 个或多个数字,请使用\\d+

"(.*?)" <sip:(\d+)@

正则表达式演示(单击表选项卡)

您需要考虑可选的"和以下<字符之间的空格。

"([^"]*)"?\s*<sip:(\d*)@.*

查看正则表达式演示

细节

  • " - 一个"字符
  • ([^"]*) - 第 1 组:除"之外的任何零个或多个字符
  • "? - 一个可选的"字符
  • \\s* - 0+ 个空格
  • <sip: - <sip:子串
  • (\\d*) - 第 2 组:零个或多个(用+替换*以匹配一个或多个)数字
  • @.* - @和该行的其余部分。

暂无
暂无

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

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