[英]Search with regular expression in Sublime Text 2
我想創建一個規則來從此文本中刪除array(
和)
:
"price"=> array(129),
要得到:
"price"=> 129,
我嘗試了以下表達式,但沒有成功:
(?<="price"=>\s*)array\((?=\d*)\)(?=,)
然后,我決定分兩步進行更換。 首先,我刪除了array(
:
(?<="price"=>\s\s\s\s\s)array\(
並得到:
"price"=> 129),
所以我只需要刪除右括號)
。 我嘗試沒有成功:
(?<="price"=>\s*\d*)\)(?=,)
這有效,但僅適用於已知數量的空格和數字:
(?<="price"=>\s\s\s\s\s\d\d\d)\)(?=,)
嘗試以下查找:
("price"=>\\s+)array\\((\\d+)\\)
這是替換:
\\1\\2
你可以與此匹配整行
\"price"[^a)]+(array\()\d+(\),)
它包含一組用於“ array(”,另一組用於“),”
嘗試這個:
(?:(?<=\"price\"=>\s*)array\((?=\d+\)))|(?<=\"price\"=>\s*array\(\d+)\)
正則表達式主要由兩部分組成(中間的管道是一個替換符號,這意味着如果第一部分不匹配,則應查找第二部分)。
第一部分檢查是否陣列(由“價格” => ...之前和通過succeded)使用向后看 (?<= ...)和先行 (?= ...)分別符號。
(?:(?<=\"price\"=>\s*)array\((?=\d+\)))
然后,我們有了一個管道(如上所述)。
|
第二部分檢查)之前是否有我們之前匹配過的所有內容( “ price” => array(129 ),還使用向后符號(<= ...) :
(?<=\"price\"=>\s*array\(\d+)\)
因此,對於字符串“ price” => array(129),結果應為兩個匹配項: array(和) 。
請讓我知道這是否適合您。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.