我在工作中遇到了以下正則表達式。它有什麼作用?這個複雜的正則表達式做什麼
,(?=(?:[^\"]*\"[^\"]*\")*(?![^\"]*\"))
要理解它,我把它分成以下幾部分
有,
(?=
,
=匹配一切=其次(?:[^\"]*\"[^\"]*\")*
=任何有不不匹配"
,然後是"
,其次是與"
不符的任何內容,然後是"
。例如,1111 「AAAAA」(?![^\"]*\")
= BUT後面沒有任何不"
和匹配"
換句話說,匹配任何有,
接着爲無論11111"111"
OR隨後""
使用上述表達式的用例,僅用於標記字符串,由,
分隔,但我假設作者爲某些更通用的東西而構建。
任何人都可以提供比上面更簡單的解釋嗎?
上述表達式用於將表達式分配給boost :: regex()。
UPDATE: 事實上,它正在搜索「」逗號,用下面的約束
有偶數以下逗號
但「這是好的,它是不是好有一個「逗號
例如,考慮後面的字符串:一,‘H,W’,23
第一「」被匹配,因爲它具有下面的偶數的‘(’H,W‘)
第二’,「在...之間‘h時,中,w’是不是因爲第二個表達式的匹配的(?![^ \「] * \」),它表示一個「,」不應該跟一個單一的「
最後最後的」,「匹配。
最後的結果將是2,
我調整了您的問題的格式,使其不太模糊,更易於閱讀。最重要的是,最外層的'(''和'「)'*不是正則表達式的一部分。另外,請注意第二個前視是第一個*裏面*。請檢查一下,看看我是否有其餘的權利。 –