正規表示式獲取兩個字元之間的字串資訊

楓葉梨花發表於2019-02-28

今天工作有一個需求就是捕獲兩個字元之間的字串資訊,類似就是AcakeB這個字串中提取cake

當時只想到如下的表示式:

A.*B
複製程式碼

上述是將以A開頭和以B結尾的字串提取出來,但是本意是不想要有A和B了。通過查資料發現瞭如下寫法

(?<=A).*(?=B)
複製程式碼

真的很驚奇正則還有這種寫法,繼續查了一點資料,又學到一點知識。

下述資料參考自部落格 正則 ?<= 和 ?= 用法

表示式 描述
(?:pattern) 非捕獲匹配,匹配pattern但不獲取匹配結果,不進行儲存供以後使用。
(?=pattern) 非捕獲匹配,正向肯定預查,在任何匹配pattern的字串開始處匹配查詢字串,不進行儲存供以後使用。
(?!pattern) 非捕獲匹配,正向否定預查,在任何不匹配pattern的字串開始處匹配查詢字串,不進行儲存供以後使用
(?<=pattern) 非捕獲匹配,反向肯定預查,與正向肯定預查類似,但是方向相反。
(?<!pattern) 非捕獲匹配,反向否定預查,與正向否定預查類似,但是方向相反。

相關文章