今天工作有一個需求就是捕獲兩個字元之間的字串資訊,類似就是AcakeB
這個字串中提取cake
。
當時只想到如下的表示式:
A.*B
複製程式碼
上述是將以A開頭和以B結尾的字串提取出來,但是本意是不想要有A和B了。通過查資料發現瞭如下寫法
(?<=A).*(?=B)
複製程式碼
真的很驚奇正則還有這種寫法,繼續查了一點資料,又學到一點知識。
下述資料參考自部落格 正則 ?<= 和 ?= 用法
表示式 | 描述 |
---|---|
(?:pattern) | 非捕獲匹配,匹配pattern但不獲取匹配結果,不進行儲存供以後使用。 |
(?=pattern) | 非捕獲匹配,正向肯定預查,在任何匹配pattern的字串開始處匹配查詢字串,不進行儲存供以後使用。 |
(?!pattern) | 非捕獲匹配,正向否定預查,在任何不匹配pattern的字串開始處匹配查詢字串,不進行儲存供以後使用 |
(?<=pattern) | 非捕獲匹配,反向肯定預查,與正向肯定預查類似,但是方向相反。 |
(?<!pattern) | 非捕獲匹配,反向否定預查,與正向否定預查類似,但是方向相反。 |