[英]Java Regex Prefix Suffix
我发现在正则表达式中查找前缀和后缀有点困难。 我正在练习并想做以下事情:
给定一个字符串:“詹姆斯很好”。 我希望能够按顺序匹配最大 substring,即如果文本是“James”或“James is”或“James is good”,则得到匹配。 因此,如果我有以下文本:“James James is James”,我应该能够捕捉到“James is”而不仅仅是“James”。 Simalrly “is James James is Good James”应该给我“James is Good”而不是“is James”,因为它是无序的而不是最大的
我想我可以使用后缀不存在(?,)来匹配,如果“好”不存在则只说“詹姆斯”等等。 但我不确定我是否正确理解前缀和后缀匹配的概念。
在这种情况下,任何澄清或帮助都会很棒。 我标记了 java 因为我熟悉 java 的正则表达式 api。
我认为您的意思是要捕获“詹姆斯是”以及下一个单词(如果存在)。 在这种情况下,您应该说"(James is(?:\s+\w+)?)"
。 显然,在 java 代码中,反斜杠必须重复。
我没有运行这个正则表达式,但我相信它可以为调试你的正则表达式提供一个良好的开端。
我不确定,但我假设您正在谈论向后看和向前看的断言。
断言的长度为零并且匹配空字符串,因此此构造不匹配任何字符。 只有在某个模式之前或之后才可以使用它们来匹配某个模式(或者,如果您使用否定版本,则不能)
您可以在此处查看有关regular-expressions.info的更多详细信息
Perlretut大约是 Perl,但它在 Java 中的工作原理类似。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.