我想匹配單個或雙引號標記,之後是不只是匹配的字符的字符中的任意量,隨後的字符中的一個相匹配:正則表達式後面參考負先行原子團
"--'__'--"
應該在每一端使用雙引號。不過,我想這場比賽是在那些已經經過測試不應該包括在未來的任何字符佔有慾匹配:
"--'__'--
應該不匹配,因爲在開始的雙引號從不之後另一個在最後。我想出了:
(?P<q>['"])(?>((?!(?P=q)).)*)(?P=q)
但是,這仍然在中間的單引號匹配上面我的第二個字符串的例子。我不明白爲什麼原子團體沒有完成這個。我還沒有能夠用任何其他的原子分組安排來實現這一點。
另外,如果有可能,在所有在引號之間,同時聲明,該報價存在,這將是極好只匹配的字符。因爲向後斷言是固定寬度我不能使用一回參考斷言是單引號或雙引號的拍攝組之前的負先行發生。
是你的投入僅包括這些或有什麼事嗎?有沒有理由爲什麼你的正則表達式不被錨定? – fge 2012-01-04 10:53:33
@fge好點。這可能會成爲更大的表達的一部分,除非我最終將所有事情都分解成更小的子表達式。我沒有太多的正則表達式,並且我不太確定在這裏如何使用錨。開始的錨會確保它不會像我的第二個字符串那樣「匹配中間」嗎?如果這個表達式在輸入開始時不匹配,那麼這是如何改變的? – taz 2012-01-04 10:59:51
那麼,線路錨點的開始確保匹配確實只能在一開始就發生。你可以嘗試在開頭添加一個'^',看看它的行爲如何? – fge 2012-01-04 11:02:28