如何从JavaScript中的正则表达式中的匹配字符串中提取先前的字符串?

时间:2019-07-09 09:41:21

标签: javascript regex

我会使用正则表达式从匹配的字符串中提取特定的字符串。

IMP QuadroIMP QuadroIMP QuadroIMP QuadroIMP QuadroIMP Quadro IMP Quadrosdfsdfdsfsdfsd 0000022德贝纳迪尼·费南多·DBRFNN72A03A515E 001468 1972年3月1日至2006年6月12日 IMP Quadro

在上面的段落中,我需要找到可用的日期,然后我需要使用单个正则表达式从匹配的字符串中提取第二个和第三个单词

".*\n(\d{2}-\d{2}-\d{4}) (\d{2}-\d{2}-\d{4})" - will result only 

"0000022 DE BERNARDINIS FERNANDO DBRFNN72A03A515E 001468
 03-01-1972 12-06-2006"

从上述字符串中,如何使用带有相同正则表达式的任何条件提取“ DE BERNARDINIS”

1 个答案:

答案 0 :(得分:3)

对于示例数据,可以从字符串的开头添加匹配的1+个数字,然后使用2个捕获组来匹配第二个和第三个单词。

如果行的开头不总是有数字,则可以使用^\S+来匹配1倍以上的非空格字符,而不是^\d+

^\d+ (\w+) (\w+).*\n(\d{2}-\d{2}-\d{4}) (\d{2}-\d{2}-\d{4})
  • ^字符串的开头
  • [0-9]+ (\w+) (\w+)匹配1个以上的数字,然后匹配2个空格和1个以上的字符字符
  • .*\n匹配除换行符外的所有字符,直到行尾,然后匹配换行符
  • (\d{2}-\d{2}-\d{4}) (\d{2}-\d{2}-\d{4}) 2个与您的日期匹配的捕获组(如模式)

Regex demo