2012-10-18 65 views
0
[a-zA-Z]_*[a-zA-Z0-9]* 

這我的目標相匹配:匹配使用字符串,數字標識符和_

astring_something; 
helloall90 

但不是:

Astring 
_helloall 

我的正則表達式是保護我的標識應從小寫字母開始。但它不適用於_的情況。通過字符串:

astring_something; 

未正確識別。它被確定爲astringsomething而不包括_

我在哪裏犯錯?

+0

你想你的正則表達式到底該怎麼做? – Abubakkar

回答

1

您目前只匹配一個單個字符在下劃線之前。

[a-zA-Z]*_[a-zA-Z0-9]* 

無論這是你真正想要的是不同的問題;例如,有多個下劃線的事情呢?

2

我想你想讓它以一個字母開頭,後跟零個或多個字母,數字或下劃線。如果是這樣,您需要將下劃線移動到第二組字符中。

變化:

[a-zA-Z]_*[a-zA-Z0-9]* 

要:

[a-zA-Z][a-zA-Z0-9_]* 

或者,如果必須用一個小寫字母開頭:

[a-z][a-zA-Z0-9_]* 
+0

+1;更完整。 –

0

嘗試

^[a-z]+_*[a-zA-Z0-9]+ 

哪裏..​​.

^[a-z]+ 

意味着它必須有一個啓動或多個小寫字母,然後...

_* 

零個或多個字符_,然後...

[a-zA-Z0-9]* 

零個或多個字母數字字符。

此模式將匹配astring_something和helloall90但不會匹配_helloall和ASTRING