正则表达式从字符串中获取姓氏

Kle*_*thu 1 regex

所以我在字符串中有名字,我需要提取姓氏。名称采用以下格式:

Mr. Firstname MI. Lastname (Designator)
Run Code Online (Sandbox Code Playgroud)

Mr. Firstname (Nick) MI. Lastname (Designator)
Run Code Online (Sandbox Code Playgroud)

当前的正则表达式我检查“(”字符是否存在,并获取它之前的单词字符(姓氏)。

(/\\w+ ["("]/)
Run Code Online (Sandbox Code Playgroud)

但是,对于第二种格式的名称,它返回名字。我需要正则表达式从字符串末尾向后工作,找到第一个“(”,并给出它之前的单词。

克伦达杜

Sam*_*Sam 5

请牢记我关于将名称(非常规)与“常规”表达式匹配的评论。


但是,您希望将匹配项锚定到字符串的末尾$。我还将括号逻辑放入了前瞻中,因此它不会包含在最终匹配中。

\w+(?=\s*\([^)]+\)$)
Run Code Online (Sandbox Code Playgroud)

演示