2010-09-14 2289 views
0

如何使用正則表達式匹配以下字符串中的「22A00」:「22A00B20A」?如何使用正則表達式匹配第二個字母?

+4

爲什麼一個正則表達式?遵循什麼邏輯?你需要制定一個規則。第一個數字?前2個字符?一切都達到「A」? – 2010-09-14 20:13:04

回答

6

您可以使用此:

/^[^a-zA-Z]*[a-zA-Z][^a-zA-Z]*/ 

說明:

 
^   Start of line 
[^a-zA-Z]* Zero or more non-letters 
[a-zA-Z] A letter 
[^a-zA-Z]* Zero or more non-letters 

正則表達式是由默認的貪婪所以這確保它能夠找到最長的匹配。如果沒有第二個字母,它將匹配整個字符串。如果沒有第一個字母,它將無法匹配。如果這不是你想要的,那麼請說明在這些特殊情況下應該發生什麼。

您可能還想考慮「letter」的含義。這個正則表達式不匹配外來字母。

1

如果你談論的是一個文字字符串

if(/22A00/.test("22A00B20A")) 
    // match 

否則,放眼@Marks答案

+0

@downvoter:沒有解釋? – 2010-09-14 21:06:17

相關問題