2013-11-04 70 views
0

用「computer」作爲子字符串爲英語字母表上的所有字符串的語言編寫正則表達式。忽略區分大小寫。在您的正則表達式中,您可以使用符號範圍而不是輸入所有字符,如[a - z]。帶子字符串的字母語言的正則表達式

我想出了這個表達

[a-z]*.’computer’.[a-z]* 

任何意見,如果它是正確的我的問題?

+0

你是在同一個班[SRK(http://cs.stackexchange.com/users/11169/srk)? (http://cs.stackexchange.com/questions/16701/regular-expression-for-a-substring) – admdrew

+0

如果你想玩,然後檢查Rubular。我開始了你一個會議,只是擺脫了你好,並把箱子放在左邊。 http://rubular.com/r/gIEg1jKxcW – JeremyS

回答

0

這是它:

/^[a-z]*computer[a-z]*$/i 

說明:

  • / =平常的regexp定界符
  • ^ =串
  • [a-z]*的開頭=字母
  • computer任何序列=匹配那個李或雙側串
  • $ =字符串
  • i =不區分大小寫修改
0

好,可以有一百個答案,取決於你的字和子的定義。

(?i)\b(?:[a-z]+computer[a-z]*|[a-z]*computer[a-z]+)\b

(?i) 
\b 
(?: 
     [a-z]+ computer [a-z]* 
    | [a-z]* computer [a-z]+ 
) 
\b 
0

如果我正確理解你的問題,你需要一個正則表達式來檢測串與包含單詞「計算機」。您建議的RE有兩個問題,一個是.’是額外的和不正確的,另一個是它不區分大小寫。以下是你的正確版本。

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

要接受字符串,在不同的情況下字計算機,如「計算機」或「計算機」你應該你要跟「忽略大小寫標誌」。這裏是:

/[\w\s]*computer[\w\s]*/i 

如你所見i是忽略大小寫的標誌。請注意,設置標誌可能在不同的語言中有所不同我們用javascript測試一下。

/[\w\s]*computer[\w\s]*/i.test('Apple Computer Stores') 
true 

它還接受帶有前綴或後綴的字,例如'computerized'或'supercomputer'。如果你不想要這個,只需要全文搜索,你應該像這樣添加\ b。

/[\w\s]*\bcomputer\b[\w\s]*/i 

讓測試,

/[\w\s]*\bcomputer\b[\w\s]*/i.test('Supercomputer') 
false 

/[\w\s]*\bcomputer\b[\w\s]*/i.test('Super Computer') 
true 
相關問題