如何从字符串中提取单引号内的值?

How to extract a value within single quotes from a string?

我正在尝试从字符串中获取 value

define('__mypassword', 'value');

我正在尝试为此使用 cutgrep

grep "__mypassword'" myfile.php | cut -d ',' -f 2

这个returns'value');

我不需要引号或大括号或分栏。如何在不使用多个 cut 语句的情况下取出值?

请使用 awk!

$ awk -F"'" '/__mypassword/{print }' <<< "define('__mypassword', 'value');"
value

这会将字段分隔符设置为单引号。这样,只需要打印第 4 个元素,即第 3 个引号之后的元素。 /__mypassword/ 充当 grep "__mypassword".

如果你还需要匹配单引号,使用/__mypassword'\''/(有点挑剔,你需要关闭awk语句以包含单引号)。

不计算逗号,计算单引号:

grep "__mypassword'" myfile.php | cut -d"'" -f4
kent$  grep -oP "[^']+(?='\))" <<<"define('__mypassword', 'value');"
value