为什么我输入的输出与输入相同,而我期待'搜索替换主题'作为输出:
x="search='some thing' replace='something' subject=/path"
echo $x
echo "$x" | sed 's/\(\w+\)=/\1\n/g'
答案 0 :(得分:2)
默认情况下,{{ dd(App\User::whereHas('roles', function($q) {
$q->where('name', '=', 'rprm');
})->orderByRaw('substring_index(TRIM(name), " ", 1)')->pluck('name', 'id'))
}}
使用旧式正则表达式。如果你想要新的风格(又名“扩展”)正则表达式,你应该使用sed
。无论如何,你正在使用旧式和新式正则表达式的混合,这些正则表达式永远不会起作用(你不能同时sed -r
... \(
和\)
);所以
+
或
sed -e 's/\(\w\+\)=/\1\n/g'
以上任何一种都会产生
sed -re 's/(\w+)=/\1\n/g'
如果您实际上期望输出为search
'some thing' replace
'something' subject
/path
,那么
search replace subject
即删除所有等号的匹配,然后按
sed -re "s/=('[^']*'|[^']\\S*)//g"
任意数量的非'
和最终'
,或 '
以外的任何内容开头。(但这与原始问题中的正则表达式无关。我无法将所需的输出与问题中的正则表达式联系起来。)