首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Regex匹配WordPress wp-config配置

Regex匹配WordPress wp-config配置
EN

Stack Overflow用户
提问于 2013-10-10 09:07:34
回答 3查看 494关注 0票数 1

我试图用regex替换wp-config中的一些内容,但我无法让它工作。

下面是我的regex模式:

代码语言:javascript
复制
(?=DB_NAME', ')(.*?)(?<='\);)

下面是配置的一个片段:

代码语言:javascript
复制
// ** MySQL settings - You can get this info from your web host ** //
/** The name of the database for WordPress */
define('DB_NAME', 'database_name_here');

/** MySQL database username */
define('DB_USER', 'username_here');

其想法是取代database_name_here。

而php:

代码语言:javascript
复制
$configContent = preg_replace("/(?=DB_NAME', ')(.*?)(?<='\);)/", $databaseName, $configContent);

其结果是:

代码语言:javascript
复制
// ** MySQL settings - You can get this info from your web host ** //
/** The name of the database for WordPress */
define('database-name

/** MySQL database username */
define('DB_USER', 'username_here');

所以这种模式不起作用。但我不知道怎么解决。为什么围观的人会被包括在这个小组里?

我不使用str_replace和替换database_name_here的原因是我将在多种语言中使用它。database_name_here被翻译成其他语言。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2013-10-10 09:12:18

你已经改变了向前看和向后看的顺序。

代码语言:javascript
复制
"/(?=DB_NAME', ')(.*?)(?<='\);)/"

应:

代码语言:javascript
复制
"/(?<=DB_NAME', ')(.*?)(?='\);)/"
票数 4
EN

Stack Overflow用户

发布于 2013-10-10 09:12:20

改为:

代码语言:javascript
复制
$configContent = preg_replace("/(?=DB_NAME', ')(.*?)(?='\);)/", $databaseName, $configContent);
//                                            here ___^
票数 2
EN

Stack Overflow用户

发布于 2016-05-14 19:44:23

代码语言:javascript
复制
$configContent = preg_replace(
    '/define\([\s]*[\'"]DB_NAME[\'"][\s]*,' .
    '[\s]*[\'"][^\'"]*[\'"][\s]*\)/i',
    "define('DB_NAME', '{$databaseName}')",
    $configContent);
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19291517

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档