我要匹配以下字符串:
$this->request->data['utility_location_id']
尝试:
[[$]this[-][>]request[-][>]data[\[\'](\w{0,22})[\'\]]
替换为:$this->request->getData\((\1)\)
返回:$this->request->getData()utility_location_id']
我想要的是:$this->request->getData('utility_location_id')
但是: 以下内容:
查找:
[[$]this[-][>]request[-][>]data[\[\'](.*)[\'\]]
替换:$this->request->getData\((\1)\)
输出:$this->request->getData('utility_location_id')
但它也匹配以下字符串:
$this->request->data['utility_location_id']adasdadasd->datas sad sada ['utility_location_id']
这是一个问题。如何解决? 我知道这是(。*)的。
答案 0 :(得分:1)
[\[\']
是character class,因此它将仅匹配一个字符。您应该改用[\[']+
,或者最好改用\['
。 [\'\]]
也有同样的故事。
请记住,non-capturing groups使用(?:X)
而不是[X]
。
答案 1 :(得分:0)
我认为您需要以下代码.....
查找内容:data\K\[(.*?id')\]
替换为:($1)
或 (\1)