給出字符串「abcdefgh」我如何匹配以「abcde」開始的所有字符串,它們不以「fgh」結尾?匹配的字符串不會以預定義部分結尾
更一般的任務 - 匹配字符串startin與某些通用模式,但不以任何預定義(排除)模式結束。
"\babcde(^fgh)\b"
不起作用
給出字符串「abcdefgh」我如何匹配以「abcde」開始的所有字符串,它們不以「fgh」結尾?匹配的字符串不會以預定義部分結尾
更一般的任務 - 匹配字符串startin與某些通用模式,但不以任何預定義(排除)模式結束。
"\babcde(^fgh)\b"
不起作用
如果所需的前綴和後綴排除可能不重疊,你可以使用負前瞻。通過「串」,我假設你的意思是「字」:
"\babcde(?!\w*fgh\b)"
如果前綴和後綴可能重疊,如果「字符串」你的意思是「絃動先行到前面
"\b(?!\w*fgh\b)abcde"
「使用^
和$
的邊界條件:
"^(?!.*fgh$)abcde"
如果你想獲得這場比賽爲好,而不僅僅是測試字符串,包括」 STR的其餘ing「到正則表達式:
"^(?!.*fgh$)abcde.*$"
您可以使用正則表達式:
^foo(?!.*bar$).*$
,匹配以foo
開始,但bar
不結束所有的字符串。
的部分^foo
確保字符串開頭foo
和
(?!.*bar$)
是負先行斷言,以確保在字符串中bar
沒有結束的部分。
消極的前瞻應該解決這個問題。 –