【发布时间】:2023-03-22 04:47:01
【问题描述】:
我需要重构一些PHP注解,我想用array<int, string>替换string[]。
我已经尝试用这个 PCRE 正则表达式匹配适当的注释:
(?<!\$|>)\w+\[\]
但是不行,here's how the regex is matching:
最新的两行不应该匹配。有没有办法为此创建一个有效的正则表达式,或者我应该使用创建自定义脚本来执行此操作?
【问题讨论】:
-
添加单词边界并添加
->替代lookbehind,(?<!\$|->)\b\w+\[\] -
后视必须是固定长度,所以我认为你不能将单个字符与
->混合使用 -
但是你可以把
\b放在\w+之前,这样它就不会匹配部分单词 -
否则
(?<![$>])\b\w+\[] -
@Barmar 这个 PCRE,不是 Python。见
(?<!\$|->)\b\w+\[\]demo。