Javascript 检查单词和单词长度的正则表达式
在JavaScript中,我使用正则表达式Javascript 检查单词和单词长度的正则表达式,javascript,regex,Javascript,Regex,在JavaScript中,我使用正则表达式/^([a-z]){3}^(foo)/I尝试匹配特定单词和单词的长度。正则表达式也应该不区分大小写。因此,我在末尾添加了一个I修饰符 我认为它应该做的是 ^ : Start at beginning of string ([a-z]){3} : Match [a-z] exactly three times ^ : Go back to start of string (foo) : Match the wo
/^([a-z]){3}^(foo)/I
尝试匹配特定单词和单词的长度。正则表达式也应该不区分大小写。因此,我在末尾添加了一个I
修饰符
我认为它应该做的是
^ : Start at beginning of string
([a-z]){3} : Match [a-z] exactly three times
^ : Go back to start of string
(foo) : Match the word foo exactly
但是,当我使用以下字符串测试时,fOo
,fOo
,fOo
,fOo
,它没有返回任何匹配项
如果有人能解释我做错了什么并帮我改正,我将不胜感激
为Sukima编辑
应该工作的字符串示例:
fOo
FoO
foo
FOO
不应该工作的示例字符串
f o o
adfsFoO
fooFoe
FfOoF
:fdFoo:
正则表达式的目的是检查字符串是否与单词
foo
完全匹配,并且长度是否为3
。因此foo
实际上是先前正则表达式的一个子集,下面的方法可以实现:
/^\w{3})/i
或者,如果不允许使用数字,请选择以下选项之一:
/^[a-z]{3}/i
/^[A-a]{3}/
这个正则表达式匹配字符串开头的每一个三个字符的单词(如果指定/m修饰符,则为行),而不管它是大写还是小写
编辑(回复评论):
如果您需要精确匹配单词foo,而不考虑其大小写,请选择:
/^foo$/i
示例匹配:
fOo
,fOo
,fOo
,fOo
,fOo
。。。更多信息请访问该regexp中有两个问题。首先,^
表示行首,除非它是regexp模式中的第一个字符,否则行首没有意义
第二个模式[a-z]{3}
无论如何都会匹配foo
,所以第二个模式就是噪声
想想你想要的只是^[a-z]{3}
,它将匹配foo
中的foo
和foobar
另一方面,如果您想在生产线的起点(或终点)匹配多个图案,则必须使用管道将图案分开
^foo | ^bar
将匹配foo
和bar
,但不匹配bazbar
或bazfoo
您的意思是^([a-z]){3}|^(foo)
?演示这不是^
的工作方式。向前看可能更好。谢谢。这就解决了为什么不直接执行/^foo$/
?我使用了两种模式,因为它必须匹配某个单词,而字符串只能包含该单词,因此使用了长度模式。感谢您的回答,尽管显示您想要搜索的示例文本和您想要的实际结果。然后其他人可以更好地推荐一个可以工作的regexp模式并解释原因。我更新了这个问题。我希望它能更清楚地说明我想要实现的目标。我使用了两种模式,因为它必须匹配某个单词,字符串只能包含该单词,因此使用了长度模式。谢谢你的回答,谢谢你的帮助:)用/^[a-z]{3}/i
代替/^[a-zA-z]{3}/i
;)@它是一种无修饰剂的溶液;我修正了输入错误并添加了两个选项,谢谢;)做/^[A-z]{3}/
(省略不区分大小写的限定符)有什么错?