我有下面的代码片段正则表达式中的字符串(直到空间)
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