我见过这个例子:
hello=ho02123ware38384you443d34o3434ingtod38384day
echo ${hello//[0-9]/}
Run Code Online (Sandbox Code Playgroud)
遵循以下语法: ${variable//pattern/replacement}
不幸的是,该pattern字段似乎不支持完整的正则表达式语法(如果我使用.或者\s,例如,它尝试匹配文字字符).
如何使用完整的正则表达式语法搜索/替换字符串?
我无法解释,但请查看以下内容:
name=$1
pat="\b[0-9a-zA-Z_]+\b"
if [[ $name =~ $pat ]]; then
echo "$name is ok as user name"
else
echo "$name is not ok as user name"
exit 1
fi
Run Code Online (Sandbox Code Playgroud)
测试运行:
./script test_user+
test_user+ is ok as user name
Run Code Online (Sandbox Code Playgroud)
带有+号的用户名不应与该正则表达式匹配.