2015-06-03 10 views
1

使用regex101比賽:正則表達式惦記上我開發這個表達式2字符字

^(\S+)\s_(\S)(\S[^;\s]+)?.* 

這個偉大工程的時間99.999%,但偶爾它是對含有2字符單詞串運行應該匹配。

例如,它通常會捕捉...

string _asdf = string.empty; 
bool _ttfnow; 
//$1 = string 
//$2 = a 
//$3 = sdf 
and 
//$1 = bool 
//$2 = t 
//$3 = tfnow 

但出於某種原因,這不符合第三組?

string _qw = string.empty; 
//$1 = string 
//$2 = q 
//$3 = 

再次使用regex101如果添加添加一個char突然匹配,從而:

string _qwx = string.empty; 
//$1 = string 
//$2 = q 
//$3 = wx 

任何想法?謝謝

回答

1
^(\S+)\s_(\S)(\S[^;\s]*)?.* 

        ^^ 

只要改變quantifier.See演示。

https://regex101.com/r/pG1kU1/33

+0

這就是它!感謝您幫助正則表達式新手....我會再接受9分鐘 – GPGVM

+0

@ user1278561 netime :) – vks

1

[^;\s]+將其更改爲[^;\s]*

/^(\S+)\s_(\S)(\S[^;\s]*)?.*/ 
相關問題