我有许多以下代码块的实例,已简化:
$image = '';
$name = '';
$link = '';
$role_suffix = '';
$role_name = '';
$notes = '';
所有这些变量都包含不同的数据。我需要将文件转换为数组,我可以通过简单的搜索和替换来完成,但首先我需要切换到$link
。$image
因此:
$link = '';
$name = '';
$image = '';
$role_suffix = '';
$role_name = '';
$notes = '';
肯定有一个正则表达式解决方案可以节省手动更改所有问题的麻烦?我曾尝试将在不同问题中找到的答案拼凑在一起,但这个正则表达式对我来说毫无意义!我尝试过这个(<div>.*?</div>)(\s+)(<span>.*?</span>)
并用 替换,\3\2\1
但我不确定正确的语法。
答案1
- Ctrl+H
- 找什么:
(\$image\h*=\h*.+?;)([\s\S]+?)(\$link\h*=\h*.+?;)
- 用。。。来代替:
$3$2$1
- 检查环绕
- 检查正则表达式
- 取消选中
. matches newline
- Replace all
解释:
( # start group 1
\$image # literally
\h* # 0 or more horizontal spaces
= # equal sign
\h* # 0 or more horizontal spaces
.+? # 1 or more any character but newline, not greedy
; # semicolon
) # end group 1
( # start group 2
[\s\S]+? # 1 or more any character, not greedy
) # end group 2
( # start group 3
\$link # literally
\h* # 0 or more horizontal spaces
= # equal sign
\h* # 0 or more horizontal spaces
.+? # 1 or more any character but newline, not greedy
; # semicolon
) # end group 3
屏幕截图: