0

我有一串数据...

"123456712J456","D","TEST1~TEST2~TEST3~TEST4~TEST5"

我想取以下字符串并制作 5 个字符串。

"123456712J456","D","TEST1"
"123456712J456","D","TEST2"
"123456712J456","D","TEST3"
"123456712J456","D","TEST4"
"123456712J456","D","TEST5"

我目前有以下正则表达式...

//In a program like Textpad
<FIND> "\(.\{13\}\)","D","\([^~]*\)~\(.*\)
<REPLACE> "\1","D","\2"\n"\1","D","\3

//On the regex101 site
"(.{13})","D","([^~]*)~(.*)

现在,如果我运行 5 次,它会正常工作。问题是要制作的行数未知。例如...

"123456712J456","D","TEST1~TEST2~TEST3~TEST4~TEST5"
"123456712J457","D","TEST1~TEST2~TEST3"
"123456712J458","D","TEST1~TEST2"
"123456712J459","D","TEST1~TEST2~TEST3~TEST4"

我希望能够使用 MULTI 捕获组来完成这项工作。我发现这个PAGE讨论了重复捕获组和捕获重复组之间的常见错误。我需要捕获一个重复的组。出于某种原因,我只是无法让我的工作正常。还有人有想法吗?


资源:

4

1 回答 1

1

试试这个。看演示。只是俱乐部match1rest of the matches

http://regex101.com/r/yR3mM3/17

正则表达式:

(.*,)|([^"~]+)

例子:

"1234567123456","T","TEST1~TEST2~TEST3~TEST4~TEST5"

结果:

MATCH 1
  1.    [0-20]  `"1234567123456","T",`

MATCH 2
  2.    [21-26] `TEST1`

MATCH 3
  2.    [27-32] `TEST2`

MATCH 4
  2.    [33-38] `TEST3`

MATCH 5
  2.    [39-44] `TEST4`

MATCH 6
  2.    [45-50] `TEST5`
于 2014-12-02T15:22:49.153 回答