示例文本:在公园里,孩子们在玩耍。孩子个子高。孩子看着另一个孩子玩耍。
我想匹配第一句中的“child”,第二句和第三句中的“Child”,而不是第三句中的“child”。或者换句话说,匹配“Child”或“child”,但如果以“another”开头,则不匹配
我以为我可以用消极的眼神来做到这一点
((?<\!another) [Cc]hild)
但似乎无法使语法正确以生成有效的正则表达式。
即使我能得到正确的语法,我也不确定我能在 GWT 中做到这一点。这是来自 GWT Javadoc 的片段
正则表达式语法中特定于 Java 的构造(例如
[a-z&&[^bc]], (?<=foo), \A, \Q)
,仅在纯 Java 实现中有效,在 GWT 实现中无效,...
任何帮助或见解将不胜感激。
更新:
科林的回答几乎有效,但并不完全正确。
Colin 的正则表达式确实匹配“孩子”和“孩子”,而不是像我问的那样匹配“另一个孩子”。不过也有一些问题。
我想要做的是匹配“孩子”和“孩子”,这样它们就可以替换为孩子的名字或正确的代词他/她,这取决于孩子的性别。
Colin 的正则表达式的问题在于它匹配“,child”和“.child”。如果那是文本中的第一个单词,它也不匹配“Child”。例如:
“孩子去了公园。在公园里,孩子在玩耍。孩子很高。孩子看着另一个孩子在玩耍。”
第一个 Child 不匹配。随后的匹配项是“, child”、“.child”和“.child”。
我研究了 Colin 想出的正则表达式,试图让它只匹配“child”或“Child”,但不能让它工作。