我想创建一条规则,从此文中删除array(
和)
:
"price"=> array(129),
得到:
"price"=> 129,
我试过这个表达但没有成功:
(?<="price"=>\s*)array\((?=\d*)\)(?=,)
然后我决定分2步进行更换。首先,我删除了array(
:
(?<="price"=>\s\s\s\s\s)array\(
得到了:
"price"=> 129),
所以我只需删除一个右括号)
。我尝试没有成功:
(?<="price"=>\s*\d*)\)(?=,)
这样可行,但仅适用于已知数量的空格和数字:
(?<="price"=>\s\s\s\s\s\d\d\d)\)(?=,)
答案 0 :(得分:2)
尝试使用find:
("price"=>\s+)array\((\d+)\)
这是替换:
\1\2
答案 1 :(得分:1)
你可以用这个匹配整行
\"price"[^a)]+(array\()\d+(\),)
它包含一组“array(”和另一组for“),”
答案 2 :(得分:1)
试试这个:
(?:(?<=\"price\"=>\s*)array\((?=\d+\)))|(?<=\"price\"=>\s*array\(\d+)\)
正则表达式主要由两部分组成(中间的管道是一个交替符号,这意味着如果第一部分不匹配则应该查找第二部分)。
第一部分检查数组(前面是“价格”=&gt; ...... ,并由取代)分别为look-behind (?&lt; = ...)和look-ahead (?= ...)符号。
(?:(?<=\"price\"=>\s*)array\((?=\d+\)))
然后我们有一个管道(如上所述)..
|
第二部分检查)之前是否我们之前匹配的所有内容(“price”=&gt;数组(129 )也使用{{3} } symbol (&lt; = ...):
(?<=\"price\"=>\s*array\(\d+)\)
因此对于字符串“price”=&gt;数组(129),结果应该是两个匹配:数组(和)。
如果这对你有用,请告诉我。