在英文字母表中为所有字符串的语言编写正则表达式,并将“computer”作为子字符串。忽略区分大小写。在正则表达式中,您可以使用符号范围而不是键入所有字符,例如[a - z]。
我出现了这个表达
[a-z]*.’computer’.[a-z]*
如果我的问题是正确的,是否有任何意见?
答案 0 :(得分:0)
就是这样:
/^[a-z]*computer[a-z]*$/i
说明:
/
=通常的regexp分隔符^
=字符串的开头[a-z]*
=任何字母序列computer
=匹配该文字字符串$
=字符串结尾i
=不区分大小写的修饰符答案 1 :(得分: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
答案 2 :(得分:0)
如果我正确理解你的问题,你需要一个正则表达式来检测包含单词'computer'的字符串。你建议的RE有两个问题,一个是.’
是额外的和不正确的,另一个是它不是不区分大小写的。以下是您的正确版本。
/[a-zA-Z]*computer[a-zA-Z]*/
要接受带有单词computer的字符串在不同的 case 中,例如'Computer'或'compUter',你应该'忽略大小写 flag '。这是:
/[\w\s]*computer[\w\s]*/i
如您所见i
是忽略大小写的标志。请注意,不同语言的设置标志可能不同。我们用javascript测试一下。
/[\w\s]*computer[\w\s]*/i.test('Apple Computer Stores')
true
它也接受带有前缀或后缀的词,例如“计算机化”或“超级计算机”。如果你不想要那个并且只需要搜索整个单词,你应该添加\ 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