如何使用 Notepad++ 在 PHP 变量中仅查找未引用的数组索引并引用它们?
How to find only unquoted array indices in PHP variable and quote them, using Notepad++?
嗨,我有几行这样的代码:
$row[number];
$row[user];
我想像这样转换它们:
$row['number'];
$row['user'];
在使用正则表达式查找和替换的记事本上我使用了这个表达式:
$row\[.*?\]
你知道我如何通过添加 ' '
来替换同一个词吗?
谢谢
您需要在索引符号中查找非引号,因此将 .*?
(本质上表示“任何东西”)替换为 [^']+?
。您还可以采用有效变量的 PHP 定义,并在索引符号之前使用我们更准确的定义:
([$][a-zA-Z_\x80-\xff][a-zA-Z0-9_\x80-\xff]*)[[]([^']+?)[\]]
你然后替换为:
['']
https://regex101.com/r/GMrMEi/1/
如果你想更进一步,你可以使用负前瞻来排除整数 ((?!\d+)
) 索引(因为它们在 PHP 中有效):
([$][a-zA-Z_\x80-\xff][a-zA-Z0-9_\x80-\xff]*)[[](?!\d+)([^']+?)[\]]
https://regex101.com/r/bU2sRg/1/
如果只有 $row
你可以这样做:
[$]row[[]([^']+?)[\]]
和
$row['']
嗨,我有几行这样的代码:
$row[number];
$row[user];
我想像这样转换它们:
$row['number'];
$row['user'];
在使用正则表达式查找和替换的记事本上我使用了这个表达式:
$row\[.*?\]
你知道我如何通过添加 ' '
来替换同一个词吗?
谢谢
您需要在索引符号中查找非引号,因此将 .*?
(本质上表示“任何东西”)替换为 [^']+?
。您还可以采用有效变量的 PHP 定义,并在索引符号之前使用我们更准确的定义:
([$][a-zA-Z_\x80-\xff][a-zA-Z0-9_\x80-\xff]*)[[]([^']+?)[\]]
你然后替换为:
['']
https://regex101.com/r/GMrMEi/1/
如果你想更进一步,你可以使用负前瞻来排除整数 ((?!\d+)
) 索引(因为它们在 PHP 中有效):
([$][a-zA-Z_\x80-\xff][a-zA-Z0-9_\x80-\xff]*)[[](?!\d+)([^']+?)[\]]
https://regex101.com/r/bU2sRg/1/
如果只有 $row
你可以这样做:
[$]row[[]([^']+?)[\]]
和
$row['']