簡體   English   中英

在Sublime Text 2中使用正則表達式進行搜索

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM