正規表示式 與 中的乙個妖怪問題

2021-09-24 11:00:46 字數 1296 閱讀 6884

2019獨角獸企業重金招聘python工程師標準》

剛剛寫正規表示式,又犯了個小錯,想想中間相隔時間一長,每次寫正則的時候都會被各種小問題坑一把,所以決定被坑一次記錄一次。

今天的小問題所是()和

我想寫乙個或的表示式,用來判斷是否是這幾個詞語中的乙個。於是一開始用[ ],發現結果都是一些單個的字被匹配。當時腦子抽了,就沒往括號上想,以為是裡面的每個詞語都需要被括起來,發現沒用。

[震驚|憤怒|悲傷|感動|喜悅|幸福|無聊|可笑]

把最外面的改稱()就可以了。

(震驚|憤怒|悲傷|感動|喜悅|幸福|無聊|可笑)

想想看之所以手賤犯了這樣錯誤,並且沒有在第一時間反應過來,還是沒iyou理解的意義。

所謂方括號,意思是這裡面的所有各自字元構成的集合。如[abcd]就是乙個字母,它將從乙個集合中取出。

所以[ab|cd|ef]的意思是有這樣的乙個4元素集合,然後在裡面取乙個元素

如果我加上括號,[[ab]|[cd]|[ef]]其實是乙個只有乙個元素的集合也就是,但事實是這樣嗎?不是當存在,且用|符號連線時,最後乙個|的後面的整個部分會被忽略,即使最後的這部分本身沒有。是不是很繞?但是我也沒有想好解釋的方法,姑且當作乙個規律先記住吧。有誰知道原因請在評注裡指點,謝謝。

我將我測試的例子留在這裡:

例子1:

測試文字

ab

efgh

cd

正規表示式

[[ab]|[cd]|[ef]|[gh]]

[[ab]|[cd]|[ef]|gh]
結果都是:

共找到 6 處匹配:ab

efcd

例子2:

測試文字

ab

efgh

cd

正規表示式

[ab|cd|ef|gh]

結果都是:

共找到 8 處匹配:ab

efgh

cd

最後正確的例子也給出:

正規表示式

(ab|cd|ef|gh)
結果都是:

共找到 4 處匹配:

abef

ghcd

誰能幫我解釋一下例子1的原因!!!!!!謝謝!!!

乙個正規表示式的例子

需求 通過.net的正則 上面3個都得到 aa 並對語句稍微講解一下。謝謝。http w 這個是我寫的。不知道怎麼加上或者匹配www 還有?這個什麼意思查不到。解決 i 匹配模式,表示忽略大小寫,在.net中等價於在後面加regexoptions.ignorecase引數 http www 肯定逆序...

乙個奇怪的正規表示式

昨天,我在做網路爬蟲的時候,遇到了乙個 對文字框的輸入作了編碼處理 具體作了什麼樣的處理,前面幾句用了js的replace方法,替換了一些特殊符號,後面用了乙個正規表示式進行了特殊的編碼工作。我當時的文字 acm task force on k 12 education and technology...

乙個新人理解正規表示式

知識點 1 表單驗證 針對於 非空驗證 去空格 非空驗證是什麼呢,就是說 當我輸入乙個賬號的時候不能輸入乙個空格就完事了,乙個空格或者多個空格絕對不是賬號,我們接收乙個賬號的時候首先要做的就是把他的前後空格給去掉,然後判斷一下他是不是空的,如果是空的那麼就提示他輸入有誤。對比驗證 跟乙個值對比 就是...