首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >使用regex匹配字符串的一部分

使用regex匹配字符串的一部分
EN

Stack Overflow用户
提问于 2020-10-29 13:24:36
回答 2查看 62关注 0票数 0

我有一根线,想要匹配它的一部分。

字符串为Accept:multipart/mixedPrivacy: nonePAI: <sip:4168755400@1.1.1.238>From: <sip:4168755400@1.1.1.238>;tag=5430960946837208_c1b08.2.3.1602135087396.0_1237422_3895152To: <sip:4168755400@1.1.1.238>

我想要匹配PAI:<sip:4168755400@空格可以是一个单词,所以我想使用.*,但是如果我使用它,它就匹配大部分字符串

该链接上的示例显示了如果我使用空格而不是.*来匹配什么

代码语言:javascript
运行
复制
(PAI: <sip:)((?:\([2-9]\d{2}\)\ ?|[2-9]\d{2}(?:\-?|\ ?))[2-9]\d{2}[- ]?\d{4})@

该链接上的示例显示了我试图用.*实现的目标,但它只应该与PAI:

代码语言:javascript
运行
复制
(PAI:.*<sip:)((?:\([2-9]\d{2}\)\ ?|[2-9]\d{2}(?:\-?|\ ?))[2-9]\d{2}[- ]?\d{4})@

我试过四处看看但失败了。有什么想法吗?谢谢

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2020-10-29 13:52:36

匹配单个空格可以通过使用匹配空格或单词字符的字符类来更新,并重复1次或多次,以匹配至少一个事件。

请注意,您不必转义空格,在这两种情况下,您都可以使用与空格或连字符[ -]?匹配的可选字符类。

如果只需要匹配,则可以省略两个捕获组(如果需要)。

代码语言:javascript
运行
复制
(PAI:[ \w]+<sip:)((?:\([2-9]\d{2}\) ?|[2-9]\d{2}[ -]?)[2-9]\d{2}[- ]?\d{4})@

Regex演示

票数 2
EN

Stack Overflow用户

发布于 2020-10-29 14:07:08

正则表达式应该是

代码语言:javascript
运行
复制
PAI:.*?(<sip:.*?@)

解释:

  • PAI:.*?找到单词PAI:,在单词后面可以是(.*),但是?用来表示在找到下一个表达式之前应该尽可能少地匹配。
  • 我们想要结果的(<sip:.*?@)捕获组。
  • <sip:.*?@找到<sip:,单词后面可以是.*?,然后才能找到@

示例

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64592023

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档