加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

正则表达式 – 匹配字符串:和空格

发布时间:2020-12-14 06:03:36 所属栏目:百科 来源:网络整理
导读:我有下面可能的字符串,我需要匹配特定的字符. 可能匹配的字符串: dsg.1.2.3.4.5.6.7.5 = STRING: 1234 blah blah blahORdsg.1.2.3.4.5.6.7.5 = STRING: "1234 blah blah blah" 下面是我试过的正则表达式.它正在工作但是对于第一个字符串,它与“”匹配 =s*
我有下面可能的字符串,我需要匹配特定的字符.

可能匹配的字符串:

dsg.1.2.3.4.5.6.7.5 = STRING: 1234 blah blah blah

OR

dsg.1.2.3.4.5.6.7.5 = STRING: "1234 blah blah blah"

下面是我试过的正则表达式.它正在工作但是对于第一个字符串,它与“”匹配

=s*STRING:s(?=")"([^"]*)|([^:]*$)

为了匹配上面可能的字符串,我使用if条件匹配dsg.1.2.3.4.5.6.7.5 = STRING:“1234 blah blah blah”

不是dsg.1.2.3.4.5.6.7.5 = STRING:1234 blah blah blah

匹配后的输出问题:

2.  [29-58] ` 1234 blah blah blah`

需要输出:

1.  [29-58] `1234 blah blah blah` --> No space

请帮我解决这个问题.

解决方法

在perl(PCRE)中,您可以使用(?| …)非捕获组构造使用正则表达式:

/=s*STRING:s(?|"([^"]*)|([^:]*))/

RegEx Demo

(?| …) – 在此构造的每个替代项中声明的子模式将从同一索引重新开始.

对于两个输入行,此正则表达式将在捕获的组#1中匹配1234 blah blah blah.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读