用“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