用「computer」作爲子字符串爲英語字母表上的所有字符串的語言編寫正則表達式。忽略區分大小寫。在您的正則表達式中,您可以使用符號範圍而不是輸入所有字符,如[a - z]。帶子字符串的字母語言的正則表達式
我想出了這個表達
[a-z]*.’computer’.[a-z]*
任何意見,如果它是正確的我的問題?
用「computer」作爲子字符串爲英語字母表上的所有字符串的語言編寫正則表達式。忽略區分大小寫。在您的正則表達式中,您可以使用符號範圍而不是輸入所有字符,如[a - z]。帶子字符串的字母語言的正則表達式
我想出了這個表達
[a-z]*.’computer’.[a-z]*
任何意見,如果它是正確的我的問題?
這是它:
/^[a-z]*computer[a-z]*$/i
說明:
/
=平常的regexp定界符^
=串[a-z]*
的開頭=字母computer
任何序列=匹配那個李或雙側串$
=字符串i
=不區分大小寫修改好,可以有一百個答案,取決於你的字和子的定義。
(?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
如果我正確理解你的問題,你需要一個正則表達式來檢測串與包含單詞「計算機」。您建議的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
你是在同一個班[SRK(http://cs.stackexchange.com/users/11169/srk)? (http://cs.stackexchange.com/questions/16701/regular-expression-for-a-substring) – admdrew
如果你想玩,然後檢查Rubular。我開始了你一個會議,只是擺脫了你好,並把箱子放在左邊。 http://rubular.com/r/gIEg1jKxcW – JeremyS