gpt4 book ai didi

java - 在Java中使用正则表达式匹配两个替代词或两个词

转载 作者:行者123 更新时间:2023-11-30 03:23:16 25 4
gpt4 key购买 nike

在 Java 中,我需要找到一个能够匹配以下句子的正则表达式:

"John Smith wants a dog and a cat"

"John wants a fish and a snake"

"Smith wants a spider and a horse"

如果“John”或“Smith”或“John Smith”没有任何内容或有任何不同的单词,则相同内容不匹配。例如,如果句子如下所示,则不应匹配:

"Jack wants a bird and a frog"
"wants a banana and a lemon"

此外,代替动物名称的单词应与捕获组匹配。

我尝试了很多组合,但我无法找到正确的“公式”,因为如果有不同的单词或开头为空,它也会匹配。例如这样:

(John )?(Smith )?wants a ([a-z]*) and a ([a-z]*)

但如果我只输入:

"wants a tiger and a lion"

通过将“tiger”和“lion”作为组查找,而在本例中,我希望它匹配,因为开头没有(正确的)名称。

希望解释足够清楚......谢谢

最佳答案

您需要在 fname 和 lname 之间使用 OR :

(?:John|Smith|John Smith) wants a ([a-z]*) and a ([a-z]*)

关于java - 在Java中使用正则表达式匹配两个替代词或两个词,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30823152/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com