簡體   English   中英

正則表達式,用於匹配兩個字符(其中@是唯一字符或前面帶有空格)

[英]regex for match out of two characters where @ is the only character or preceded by a whitespace

我試圖編寫一個正則表達式,在這里我總是將最新輸入的字符與正則表達式進行比較,並嘗試僅匹配“ @”(如果之前沒有任何內容)和“ @”

我正在嘗試使用:

lastTwoEntered.match(/(\s|^)@/);

lastTwoEntered.match( /^\B@/);

但是它們都不准確。

以下內容不應返回true:'a @''@d''@@'''@'

如果我了解您要執行的操作:

/ ^ @ $ | ^ @ $ /

“ $”表示以@結尾

嘗試這個 :

lastTwoEntered.match( /^ ?@$/);

問題符號與空格匹配0或1次。 您還可以在這里找到其他有用的量詞。 要徹底了解為什么這樣做有效,您應該了解貪婪和惰性匹配。 是一篇很好的文章。 假設匹配器將嘗試為您的正則表達式匹配最大的有效字符串。


因此,對於您提供的第一個正則表達式,匹配為:

任何事物,空間,任何事物

要么

行首,在,任何

第二場比賽:

始於邊界的任何東西

這些都不是您想要的。

將正則表達式轉換為普通語音是一種很好的做法,以確保它是您想要的。

暫無
暫無

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

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