gpt4 book ai didi

php - shell 相当于 php preg_match?

转载 作者:可可西里 更新时间:2023-11-01 13:20:26 24 4
gpt4 key购买 nike

是否有与 PHP 的 preg_match 等效的 shell?

我正在尝试从 shell 脚本中的这个字符串中提取数据库名称。

define('DB_NAME', 'somedb');

在 PHP 中使用 preg_match 我可以做这样的事情。

preg_match('define(\'DB_NAME\','(.*)'\'\)',$matches);
echo $matches[1];

我怎样才能在 shell 脚本中完成同样的事情?

最佳答案

使用 expr 可以准确回答问题:

expr match "string" "regexp"

因此,根据您的需要,您可以这样写:

expr match "$mystring" "define('DB_NAME', '\([^']\+\)');"

注意 \(\) 对。如果没有这些字符,expr 将返回匹配字符的数量。有了它们,只返回匹配的部分。

$ string="define('DB_NAME', 'toto');"
$ expr match "$string" "define('DB_NAME', '[^']\+');"
26

$ string="define('DB_NAME', 'toto');"
$ expr match "$string" "define('DB_NAME', '\([^']\+\)');"
toto

不过,我不知道 expr 在哪些环境下可用(并且有这种行为)。

关于php - shell 相当于 php preg_match?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1425121/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com