我正在尝试构建一个脚本,该脚本应该为您提供文本的正确名称列表。我想构建一个正则表达式,该表达式匹配以大写字母开头并且不会开始恍惚的每个单词。文本中的一个例子:
“但是当他想到这些事时,看哪,是主的使者 在梦中向他显现,说:大卫的儿子约瑟夫不会 害怕把你的妻子玛丽带给你,因为那是怀孕的 她是圣灵。她准备生一个儿子。你必须给他起名叫耶稣。那是因为他会将他的人民从他们的罪中拯救出来。
我希望正则表达式匹配:“主”,“约瑟夫”,“大卫”,“玛丽”,“神圣”和“精神”。它不应该匹配“但是”,“她”,“你”或“那个”。所以我这样做了:
[a-z,;:] +([A-Z][a-z]+)[\W]
这匹配主,约瑟夫,大卫,玛利亚和圣洁,但不是精神。这就是我的问题:在找到“神圣”之后,正则表达式继续在文本中搜索模式;为了找到“精神”,正则表达式应该考虑第一个方括号,取“神圣”的“y”。因此,在发现“神圣”之后应该重新启动而不是“神圣”之后。我也尝试过非匹配组,例如:
(?:[a-z,;:]) +([A-Z][a-z]+)[\W]
但这也不是答案。如果有人愿意,我会非常感激。 此致!