我发现围绕正则表达式中的前缀和后缀查找有点困难。我正在练习,并希望做到以下几点:Java正则表达式前缀后缀
给出一个字符串:“詹姆斯很好”。我希望能够按顺序匹配最大子字符串,例如,如果文本是“James”或“James is”或“James is good”,则匹配。因此,如果我有以下文字:“詹姆斯詹姆斯是詹姆斯”,我应该能够抓住“詹姆斯”而不仅仅是“詹姆斯”。 Simalrly“是詹姆斯詹姆斯是好詹姆斯”应该给我“詹姆斯是好”,而不是“詹姆斯”,因为它是坏的,并不是最大的
我想我可以使用后缀不存在(?!),匹配,只说“詹姆斯”如果“好”不存在等等,但我不确定是否理解了正确匹配前缀和后缀的概念。
在这种情况下的任何澄清或帮助将是伟大的。我标记了java,因为我熟悉了java的正则表达式api。
感谢您的快速回复!是的,但只有在“好”的情况下我才会捕获下一个词。否则,我想要“詹姆斯是”。与“詹姆斯”和“是”一样的东西。如果下一个单词不是“是”,我想捕捉“詹姆斯”。否则,我想要“詹姆斯是”。 – Panther
在这种情况下,说“(詹姆斯是(?:\ s + good)?)” – AlexR