簡體   English   中英

正則表達式 - 匹配除+之外的任何字符,空字符串也應匹配

[英]Regular Expression - Match any character except +, empty string should also be matched

我在JavaScript中使用的正則表達式的一部分遇到了一些麻煩。 我需要一種方法來匹配+字符以外的任何字符,空字符串也應該匹配。

[^+]幾乎是我想要的,除了它與空字符串不匹配。 我試過[^+]*思考:“除了+ ,零次或多次以外的任何字符”,但這匹配包括+在內的所有內容。

  • [^+]表示“匹配任何不是+單個字符”
  • [^+]*表示“匹配任何數量不是+的字符” - 這幾乎看起來像我想要的那樣,但如果第一個字符(甚至所有字符)都是+ ,它將匹配零個字符。

使用錨點來確保表達式驗證整個字符串:

^[^+]*$

手段:

^       # assert at the beginning of the string
[^+]*   # any character that is not '+', zero or more times
$       # assert at the end of the string

添加一個{0,1},使它只匹配零次或一次,不多也不少:

[^+]{0,1}

或者,正如FailedDev指出的那樣, ? 也有效:

[^+]?

正如預期的那樣,使用Chrome的JavaScript控制台進行測試顯示與"+"不匹配,但與其他字符匹配:

x = "+"
y = "A"

x.match(/[^+]{0,1}/)
[""]

y.match(/[^+]{0,1}/)
["A"]

x.match(/[^+]?/)
[""]

y.match(/[^+]?/)
["A"]

如果您只是測試字符串以查看它是否包含+ ,那么您應該使用:

^[^+]*$

僅當ENTIRE字符串沒有+才會匹配。

暫無
暫無

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

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