我正在尝试编写正则表达式来匹配这些确切的字符串:
我不是在寻找一个角色。我正在寻找一个确切的字符串并试图了解reg exs的工作原理。
我已阅读Eloquent JS中的MDN文档和chapter,以及stack overflow次对话中的搜索结果。
我知道方括号中的任何内容都代表一个字符集,而且字符不必按顺序出现。
我尝试了/[i\'m] in/
,它可以在我的代码中运行,但是当我运行时:
/[i\'m] in/.exec('i\'m in')
评估为[“m in”]
我也试过了/i\'m in/
,这在我的代码中无法正常运行,但是当我运行时:
/i\'m in/.exec('i\'m in')
评估为[“我在”]
不确定为什么会这样。任何指针或照明都会很棒。
答案 0 :(得分:1)
您的正则表达式只匹配4个字符,而您的完整字符串长度为6个字符。
/[i\'m] in/.exec('i\'m in')
正则表达式 - > [i\'m] in
它将匹配4个字符。第一个字符可以是i
或\'
或m
。第二个字符是space
,第三个字符是i
,第四个字符是n
。您不必在正则表达式中使用\
'
。但是您需要在JS字符串中使用\
作为'
。
字符串 - > 'i\'m in'
m in
是正则表达式匹配的字符串。
它也可以匹配这些字符串:
i in
,' in
如果你想匹配字符串的所有6个字符,你可以使用这样的东西:
/i'm in/.exec('i\'m in')
如果您想要匹配或关闭,您可以使用or
运算符。
/i'm (in|out)/.exec('i\'m out')