我有以下格式的文本,但我想要的是从找到的 12 位数字的开头选择单词并对其进行分组,并在下一个 12 位数字的开头停止,这些数字也应该组合在一起。
例如,在我下面的文字中,应将以下内容组合在一起:
011111111111 CDGH, LGF ADF : 203 HYT LOREM IPSUM / LOREM IPSUM COUNTY : GTYH CHIDGER L. IPSUM THJ. DATE: 07/21/2000 LOREM IPSUM DOLOT & LOREM IPSUM 768 LOREM IPSUM, 67TH LOREM IPSUM IPSUM. DTEA: NIGER, GA 12345 LOREM IPSUM DOLOT 97 LOREM IPSUM
DOLOT, KY 35678-8765
还有
0222222222222 CDGH, LGF ADF : 203 HYT LOREM IPSUM / LOREM IPSUM COUNTY : GTYH johjk L. IPSUM THJ. DATE: 07/21/2000 LOREM IPSUM DOLOT & LOREM IPSUM 768 LOREM IPSUM, 67TH LOREM IPSUM IPSUM. DTEA: NIGER, GA 12345 LOREM IPSUM DOLOT 97 LOREM IPSUM
DOLOT, KY 35678-8765
这是整个文档的样本
LOREM IPSUM LOR IPSUM DDDDDDDDD FG SSSSS NUMBER
106/03/2019 LOREMFG GH LOREMIPSUMF
LOREM OPFRTE ERTIO
LOREMIPS LOREMIOS 05/30/2019 DERTE TH LOREM (LWA LTD)------------------------------------------------------------------------------------------------------------------------------------011111111111 CDGH, LGF ADF : 203 HYT LOREM IPSUM / LOREM IPSUM COUNTY : GTYH CHIDGER L. IPSUM THJ. DATE: 07/21/2000 LOREM IPSUM DOLOT & LOREM IPSUM 768 LOREM IPSUM, 67TH LOREM IPSUM IPSUM. DTEA:
NIGER, GA 12345 LOREM IPSUM DOLOT
97 LOREM IPSUM DOLOT, KY 35678-8765 0222222222222 CDGH, LGF ADF : 203 HYT LOREM IPSUM / LOREM IPSUM COUNTY : GTYH johjk L. IPSUM THJ. DATE: 07/21/2000 LOREM IPSUM DOLOT & LOREM IPSUM 768 LOREM IPSUM, 67TH LOREM IPSUM IPSUM. DTEA:
NIGER, GA 12345 LOREM IPSUM DOLOT
97 LOREM IPSUM DOLOT, KY 35678-8765 011111111111
CDGH, LGF ADF : 203 HYT LOREM IPSUM / LOREM IPSUM COUNTY : GTYH CHIDGER L. IPSUM THJ. DATE: 07/21/2000 LOREM IPSUM DOLOT & LOREM IPSUM 768 LOREM IPSUM, 67TH LOREM IPSUM IPSUM. DTEA:
NIGER, GA 12345 LOREM IPSUM DOLOT
97 LOREM IPSUM DOLOT, KY 35678-8765
我编写的代码只选择了 12 位数字和空格,但忽略了它们之间的文本。 Link to the regex101 I have written for this purpose
(\b\d{12}\s*\b[A-Za-z0-9_.]*+\s+)
最佳答案
如果 12 位数字也可以在同一行上,您可以在模式的开头使用单词边界,并使用具有正前瞻性的非贪婪量词。
如果值可以跨越多行并且可以在同一行出现两次,您可以考虑使用 [\s\S]+?
而不是 .+?
\b\d{12}\b.+?(?=\b\d{12}\b|$)
部分
\b\d{12}\b
匹配单词边界之间的 12 位数字.+?
匹配除换行符以外的任何字符 1+ 次非贪婪(?=\b\d{12}\b|$)
正面前瞻,断言右边的是被单词边界包围的 12 位数字或字符串的末尾。
关于javascript - 如何从 12 位数字的开头获取所有文本并使用正则表达式对它们进行分组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58168728/