Kry*_*ska 3 php regex preg-replace preg-match
我有包含内容的txt文件:
fggfhfghfghf
$config['website'] = 'Olpa';
asdasdasdasdasdas
Run Code Online (Sandbox Code Playgroud)
以及用于替换文件中的 preg_replace 的 PHP 脚本:
write_file('tekst.txt', preg_replace('/\$config\[\'website\'] = \'(.*)\';/', 'aaaaaa', file_get_contents('tekst.txt')));
Run Code Online (Sandbox Code Playgroud)
但它并不能完全按照我想要的方式工作。
因为这个脚本替换了整个匹配,更改后它看起来像这样:
fggfhfghfghf
aaaaaa
asdasdasdasdasdas
Run Code Online (Sandbox Code Playgroud)
这很糟糕。
我想要的只是不改变整场比赛$config['website'] = 'Olpa';而只是改变这一点Olpa
如您所见,它不属于匹配信息的第 2 组。
我想要的只是改变这个第 2 组。一件特定的事情。
最后在脚本之后它看起来像:
fggfhfghfghf
$config['website'] = 'aaaaaa';
asdasdasdasdasdas
Run Code Online (Sandbox Code Playgroud)
你需要改变你preg_replace的
preg_replace('/(\$config\[\'website\'] = \').*?(\';)/', '$1aaaaaa$2', file_get_contents('tekst.txt'))
Run Code Online (Sandbox Code Playgroud)
这意味着,捕获您需要保留的内容(然后使用反向引用来恢复文本)并匹配您需要替换的内容。
请参阅正则表达式演示。
图案详情:
(\$config\[\'website\'] = \')- 第 1 组捕获文字 $config['website'] = '子字符串(稍后引用 with $1).*? - 尽可能少的除换行符以外的任何 0+ 个字符(\';)- 第 2 组:a'后跟;(后来参考 with $2)如果您aaa实际上以数字开头,则需要${1} 反向引用。
| 归档时间: |
|
| 查看次数: |
3843 次 |
| 最近记录: |