如何使用 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['']

https://regex101.com/r/tTMmS7/1/