Regex查找字符串中的最后一个单词-Javascript风格



我很接近,但不完全在那里。我正试着把最后一个单词拼出来,把姓氏拔出来。

我的Regex:

被保险人姓名:\W*(?<Insured_last_Name>.*(

我正在搜索的文本:

被保险人名称:

FRED&乙基MERTZ

样本在这里。。。https://regex101.com/r/McdMcq/3

您可以将Insured Name:匹配到行的末尾。然后匹配一个换行符和后面可选的空白字符。

然后在要获取最后一个单词的行,首先匹配到行的末尾,然后回溯到最后一个空格,并在组insured_last_name中捕获1+个非空白字符

bInsured Name:.*r?ns*.* (?<insured_last_name>S+)

部件内

  • bInsured Name:字面匹配
  • .*r?ns*匹配行的其余部分、换行符和0+个空白字符
  • .*匹配行的其余部分并匹配最后一个空格
  • (?<insured_last_name>S+)匹配组insured_last_name中的1+个非空白字符

Regex演示

您可以简单地使用/w+$/gm

演示:https://regex101.com/r/McdMcq/4

说明:

  • w:查找字母数字字母
  • +:至少一个
  • $:然后是字符串的末尾

如果中间有多行和潜在的垃圾数据,我建议您删除2个换行符(nn(,然后进行Positive Lookbacking查找";名称";。演示:https://regex101.com/r/McdMcq/5

如果需要将结果存储在捕获组中,只需在两个正则表达式中的任何一个正则表达式上用括号和组名(即(?<insured_last_name>w+$)(将w+$括起来即可。

您可能需要进一步定义数据集,但您可以尝试

Insured Name:n+.*(?<insured_last_name>b.+)

示例

它从";被保险人名称:";,然后任何空行,然后将读取下一行,直到最后的字边界(不包括EOL(;之后的任何内容都在您的命名组中。

相关内容

  • 没有找到相关文章

最新更新