簡體   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