繁体   English   中英

Java 正则表达式前缀后缀

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM