首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何用正则表达式过滤零件

如何用正则表达式过滤零件
EN

Stack Overflow用户
提问于 2020-10-05 09:34:33
回答 1查看 54关注 0票数 0

我有一个数据是:

代码语言:javascript
复制
- TEST 1
(O 1 9 14 17,231,=Defaut continuite
[Diag] = FAILED CONTINUITY

(O 72,225,=REF:STRAPP,COMPONENT TOP 
[Diag] = FAILED CONTINUITY BETWEEN : TC1.17,TC1.4
 
- TEST POPIYAX1245
(S 14,391

我想提取一组具有正则表达式的数据,如下所示:

代码语言:javascript
复制
Match 1
Group 1.    (O
Group 2.    1 9 14 17,231
Group 3.    [Diag] = FAILED CONTINUITY


Match 2
Group 1.    (O
Group 2.    72,225
Group 3.    [Diag] = FAILED CONTINUITY BETWEEN : TC1.17,TC1.4

Match 3
Group 1.    (S
Group 2.    14,391
Group 3.    

I使用(^(S,O,B,C,F)(.,=.)提取部分,但我不能像这个例子那样做。请查一下这里,https://regex101.com/r/nArj5i/1

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-10-05 09:40:26

您可以使用两个捕获组和一个可选的第三组。(您可以省略字符类中的逗号)

代码语言:javascript
复制
^(\([SOBCF]) (\d+(?:[ ,]\d+)*)(?:.*\r?\n(\[\w+] = .*))?
  • 字符串的^开始
  • ( capture group 1
    • \([SOBCF]匹配(和列表中的一个字符

  • )关闭组1并匹配一个空格
  • ( Capture group 2
    • \d+(?:[ ,]\d+)*匹配1+数字,并可选择重复空格或逗号和1+数字。

  • )闭组2
  • (?:非捕获群
    • .*\r?\n匹配行的其余部分,后面跟着换行符
    • (\[\w+] = .*)捕获组3,在方括号之间匹配1+单词字符,后面跟着空格、=和空格,然后是行的其余部分。

  • )?关闭组并使其成为可选的

Regex演示

注意,要匹配方括号之间的所有内容,还可以使用一个否定的字符类\[[^\][]*]而不是\[\w+]

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

https://stackoverflow.com/questions/64206022

复制
相关文章

相似问题

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