我有一個模式,我將其稱爲Z
(實際模式有點長並且對問題不重要)。簡而言之,我希望能夠匹配\*\sZ
或Z\:
,但不是兩者都不匹配。正則表達式僅匹配前綴或僅匹配後綴(XOR)
我試圖使用lookaheads(類似於下面),但是由於前綴和後綴之間的模式,它們不起作用。
(\*\s(?!\:))Z((?<!\*)\:)
是否有完成此無需複製的圖案(例如(\*\sZ|Z\:)
)的方法嗎?
有關我的模式的快速註釋是Z
模式中沒有\*
,僅在前綴中。相反還有還有在Z模式沒有\:
,它只是在後綴如果立即着手 Z,但不經過任何其它字符(有後綴後.*
捕獲)
哪種語言您使用的看到了嗎? – ndn
@ndn java,儘管爲了簡單起見,我一直使用在線'pcre'測試程序。 – Rogue
我不認爲有一種方法只在java中使用正則表達式。在單獨的字符串中提取'Z'並使用它來創建整體模式,因此您不必複製它。 – ndn