簡體   English   中英

用於檢查單詞和單詞長度的正則表達式

[英]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

但是,當我使用以下字符串fOofooFooFoO對此進行測試時,它沒有返回任何匹配項。

如果有人可以解釋我做錯了什么並幫助我解決它,我將不勝感激。

Regex101

編輯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

匹配示例: fOofOofooFooFoO ...更多關於regex101

該正則表達式中有兩個問題。 首先, ^表示行的開始,除非它是正則表達式模式中的第一個字符,否則它是無意義的。

其次,模式[az]{3}仍將與foo匹配,因此第二個模式只是噪聲。

想想你要的是簡單的^[az]{3}將匹配foofoofoobar

順便說一句,如果要在行的開頭(或結尾)匹配多個模式,則必須用管道將這些模式分開|

^foo|^bar將匹配foobar ,但不bazbarbazfoo

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM