Regex 正则表达式匹配{12}位数字&;其他模式,多行,当它们之间可以有任何字符时

Regex 正则表达式匹配{12}位数字&;其他模式,多行,当它们之间可以有任何字符时,regex,Regex,我正在尝试创建一个正则表达式,但目前我不确定是否可能: 以我为例: 要求: 我需要正则表达式来匹配12个数字 在12个数字之后或之前,可以有多行不同数量的字符 我想匹配模式[A-Z]{4}\s?\d{7},该模式可以在12位数字随机次数之后(在它们之间,再次随机多行中的其他字符) 我想多次匹配[A-Z]{4}\s?\d{7},直到它前面的文本中有另一个12位数字-不仅在它前面,而且在其他文本之间 如果有帮助的话,我们可以假设12位数字和A-Z模式将位于新行的开头 您可以使用两次通过的方法:1)

我正在尝试创建一个正则表达式,但目前我不确定是否可能:

以我为例:

要求:

  • 我需要正则表达式来匹配12个数字
  • 在12个数字之后或之前,可以有多行不同数量的字符
  • 我想匹配模式
    [A-Z]{4}\s?\d{7}
    ,该模式可以在12位数字随机次数之后(在它们之间,再次随机多行中的其他字符)
  • 我想多次匹配
    [A-Z]{4}\s?\d{7}
    ,直到它前面的文本中有另一个12位数字-不仅在它前面,而且在其他文本之间
  • 如果有帮助的话,我们可以假设12位数字和A-Z模式将位于新行的开头

您可以使用两次通过的方法:1)提取所有以12位数字开头的文本块,并延伸到下一个12位数字或文本结尾,2)然后从每个块中提取字母数字模式

下面是第一个正则表达式:

^(3\d{11})\R+([\s\S]*?)(?=\R3\d{11}|\z)
看。12位数字在此处的第1组中。然后,将第2组作为输入

\d{12}|[a-zA-Z]{4}\s?\d{7}
匹配12位数字或4个字母、可选空格和7位数字


请参见

您能给出一些输入和输出字符串的示例吗?您需要存储所有的
\d{12}
和所有的
A-Z]{4}\s吗?\d{7}
以便进一步处理吗?
有什么问题吗?(:\d{12}[A-Z]{4}\d{7})$
?请参阅或您是否需要
^(3\d{11})\R+([\s\s]*?)(?=\R3\d{11}\z)
()E.i.输入:31544564091 neco1 neco2 neco3 ABO8604301 neco1 neco3 neco3 ABBB 8604302 ABBB 8603 31544564092 ABBB 8604 neco1 neco1 neco3 neco3输出:3154456440491 ABB8601 ABB4302 ABB8603 3154440492 ABB4-我需要存储{}数字及其下的所有ABCD{7}号。315445640491-ABCD8604301,ABBB8604302,ABBB8604303 315445640492-ABBB8604304。。etc
^(?:\d{12}|[A-Z]{4}\s?\d{7})$
这是我将使用的解决方法,可能有点不同,比如
(\d{12})|([A-zA-Z]{4}(\s)?\d{7})
所以我捕获了所有ABCD模式