我有下面的代碼片段正則表達式中的字符串(直到空間)
cv_13221 IN OUT SYS_REFCURSOR,
,只是想cv_13221出來。
我試過以下的正則表達式
cv_.*\s
但它取我
cv_13221 IN OUT
我能做些什麼,以使其停止在第一次出現\ S
我想這正則表達式夥伴
我有下面的代碼片段正則表達式中的字符串(直到空間)
cv_13221 IN OUT SYS_REFCURSOR,
,只是想cv_13221出來。
我試過以下的正則表達式
cv_.*\s
但它取我
cv_13221 IN OUT
我能做些什麼,以使其停止在第一次出現\ S
我想這正則表達式夥伴
使用一個不情願的Kleene而不是一個貪婪的封閉。通常,這是它的語法:
cv_.*?\s
通常,克林閉包算(*
)將匹配儘可能。不情願的Kleene封閉運營商(*?
)儘可能少匹配。
嘗試:
cv_\S+
在 '\ S' 是指資本 'S':匹配非空格字符。當然,+意味着一個或更多。 或者:
cv_\d+
時,它總是下劃線之後來到位數:最好儘可能具體,你可以用正則表達式的時候。
*是貪婪的。它會在最後一個空間之前抓取儘可能多的東西。試試這個:
cv_[^\s]*
+1爲提供更好的選擇在正則表達式中更具體。我個人儘可能避免使用。*我自己,除非我特別需要一整行或任何東西。 – 2009-10-02 17:36:15
@Platinum Azure:完全不同意! – 2009-10-02 17:37:47