簡體   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