正则表达式查找`$ this-> request-> data ['utility_location_id']`

时间:2019-11-24 08:51:22

标签: regex notepad++

我要匹配以下字符串:

$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']

这是一个问题。如何解决? 我知道这是(。*)的。

2 个答案:

答案 0 :(得分:1)

[\[\']character class,因此它将仅匹配一个字符。您应该改用[\[']+,或者最好改用\['[\'\]]也有同样的故事。

See demo

请记住,non-capturing groups使用(?:X)而不是[X]

答案 1 :(得分:0)

我认为您需要以下代码.....
查找内容:data\K\[(.*?id')\]
替换为:($1)(\1)