我有一个数据是:
- 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我想提取一组具有正则表达式的数据,如下所示:
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
发布于 2020-10-05 09:40:26
您可以使用两个捕获组和一个可选的第三组。(您可以省略字符类中的逗号)
^(\([SOBCF]) (\d+(?:[ ,]\d+)*)(?:.*\r?\n(\[\w+] = .*))?^开始( capture group 1 \([SOBCF]匹配(和列表中的一个字符)关闭组1并匹配一个空格( Capture group 2 \d+(?:[ ,]\d+)*匹配1+数字,并可选择重复空格或逗号和1+数字。)闭组2(?:非捕获群.*\r?\n匹配行的其余部分,后面跟着换行符(\[\w+] = .*)捕获组3,在方括号之间匹配1+单词字符,后面跟着空格、=和空格,然后是行的其余部分。)?关闭组并使其成为可选的注意,要匹配方括号之间的所有内容,还可以使用一个否定的字符类\[[^\][]*]而不是\[\w+]。
https://stackoverflow.com/questions/64206022
复制相似问题