[英]Regular expression to check word and word length
在JavaScript中,我使用正則表達式/^([az]){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
...更多關於regex101
該正則表達式中有兩個問題。 首先, ^
表示行的開始,除非它是正則表達式模式中的第一個字符,否則它是無意義的。
其次,模式[az]{3}
仍將與foo
匹配,因此第二個模式只是噪聲。
想想你要的是簡單的^[az]{3}
將匹配foo
在foo
和foobar
。
順便說一句,如果要在行的開頭(或結尾)匹配多個模式,則必須用管道將這些模式分開|
。
^foo|^bar
將匹配foo
和bar
,但不bazbar
或bazfoo
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.