2014-04-01 24 views
0

我的源字符串是:就與此正則表達式表達掙扎,需要使其更加具體

[irc:st:sp][irc:tl:ad,sp] 

我只是要匹配的支架和我目前的,和不完全之間的任何一組,匹配模式:

\[irc:tl:.*sp\] 

這將返回true

因爲我的比賽方式是不正確的跨括號組火災則以下也是如此

[irc:tl:ad][irc:st:sp] 

即[irc:tl * sp]是上述總結,就我目前的匹配模式而言如此。

我怎樣才能讓我的模式更具體,只有內的一套支架的應用,所以事先

[irc:st:sp][irc:tl:ad,sp] \\ true 

[irc:tl:ad][irc:st:sp] \\false 

感謝。

回答

3

明確禁止括號:\[irc:tl:[^]]*sp\] - [^...]說「除這些以外的任何字符」;如果您在該集合中有一個右括號,則它應該是第一個。不需要或不需要轉義。

+0

非常感謝。第一個爲我工作,因爲它禁止越過括號的邊界,而第二個沒有,因爲比賽越過括號,並且由於[irc:tl * sp]其中*已經跨過括號而返回true。 – SamJolly

+0

啊,對。是的,不是第二種技術的情況;他們通常可以互換使用,但不能在這裏使用。我會編輯以反映這一點。 – Amadan