繁体   English   中英

正则表达式匹配模式中的名称

[英]Regex matching names in pattern

我有一个简单的模式LASTNAME, FIRSTNAME MI_IDNUMBER^[a-zA-Z0-9, ]+_[a-zA-Z0-9]+匹配。 我现在遇到的问题是该人姓氏带有连字符的记录,例如WALKER-REYES, ANNA T_AW12345 我试过将诸如(?=\\S*['-])([a-zA-Z'-]+)合并到其中,但这只能识别字符串中的LASTNAME 将这一切串在一起的最佳方法是什么? 并非所有名称都带有连字符。

您构建正则表达式的方式不是最佳的。 您正在匹配每个字符,包括空格,直到找到下划线 ( _ ),然后匹配其余字符。 而不是这样做,您不应该匹配空格并将字符串的每个部分放在不同的组中。

您可以尝试使用这个支持连字符的正则表达式。

^(?: ?([a-zA-Z0-9\-]+),?){2} ([a-zA-Z0-9_]+)

正则表达式可视化

您可以在此 regex101 上测试更多案例

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM