[英]Regex simultaneous lookahead and lookbehind
我正在嘗試編寫一個正則表達式,同時匹配當前角色前面和后面的圖案。
例如:
紅色,格力,黃白色,多雪
在
312415 red, gree, yellow-white, snowy CDEFASE
一二三四
在
29321093123 one, two, three #four IRUASJDJADALLDLA
如您所見,在字符串中間部分的前面和后面,我有相同的模式:
前 :\\ d +
返回 :[AZ] +
我該怎么做?
您不能同時向后看和向前看,但可以像平常一樣使用它們。
從后向開始,先檢查字符串,后跟一個空格(?<=\\d+ )
匹配中間的任何字符.+
然后以與一個空格匹配后跟一個或多個字母(?= [AZ]+)
放在一起,你就得到了(?<=\\d+ ).+(?= [AZ]+)
先行者和后備者並不是您認為的那樣。 它們是零寬度的斷言,這意味着它們不匹配任何內容,僅檢查模式的存在/不存在。
您要在此處匹配多個數字,后跟一系列字符,然后再跟隨另一組大寫字符。 您如何捕獲中間的東西? 您可以使用方括號。 他們會在進行比賽時捕獲比賽並將其保存,以備日后參考。 AVinash答案中的(。*?)部分實際上是捕獲所需文本的部分。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.