我需要匹配特定的模式,但是我无法用正则表达式做到。我想要匹配人名,它们总是遵循相同的模式。以下是一些组合:
1. Mr. Snow 2. Mr. John Snow 3. Mr. John Snow (Winterfall of the nord lands)
我的问题出现在有时候我会有类似以下的情况:
我最好的尝试如下:
有什么想法吗?
这里是一些文本以供快速检查: 链接。
1. Mr. Snow 2. Mr. John Snow 3. Mr. John Snow (Winterfall of the nord lands)
我的问题出现在有时候我会有类似以下的情况:
Mr. Snow and Ms. Stark
,它也会捕获and
。所以我正在寻找一个正则表达式,只有当第二个名称不是and
时才捕获它。这里我正在寻找["Mr. Snow", "Ms. Stark"]
。我最好的尝试如下:
(M[rs].\s\w+(?:\s[\w-]+)(?:\s\([^\)]*\))?)
请注意,第二个名称在非捕获组中。因为我想使用负向先行断言,但如果我那样做,第一个单词就无法被捕获(因为整个名称不匹配),而我需要捕获它。有什么想法吗?
这里是一些文本以供快速检查: 链接。