正则表达式:((?:(?!。*(?:Jr | Sr | MD | I {2,3} | IV)$)。?)(?:(?:\ w \ D [^ &安培;???%,.] +)\ S)+)(:( JR |锶| MD | II {2,3} | IV))
输入文字:Dela Cruz III
预期产出:第1组:Dela Cruz 第2组:III
实际输出:组#1:模式不匹配,因为它检测到III并忽略整个字符串
目标:我希望我的正则表达式模式解析字符串并将“姓氏”与“发布”修复程序分开(如果有)。
模式似乎有什么问题?
答案 0 :(得分:0)
前瞻是关于紧跟在前面的字符,类或捕获组之后的内容。这个小小的补充使得这个工作在这一个字符串上,并且应该适用于一般的单一名称样式,但如果您的目标是提取而不是验证单个名称,我们将需要更多示例。
删除$可能更类似于您想要的解决方案,这取决于这些名称是否是整个字符串。
((?:(?!.*(?:Jr|Sr|MD|I{2,3}|IV)$)\.?)(?:(?:\w\D[^&%,.]+)\s?)+)
您正在进行验证还是提取?我发布的更多是验证模式。