相关疑难解决方法(0)

使用正则表达式在bash中搜索和替换

我见过这个例子:

hello=ho02123ware38384you443d34o3434ingtod38384day
echo ${hello//[0-9]/}
Run Code Online (Sandbox Code Playgroud)

遵循以下语法: ${variable//pattern/replacement}

不幸的是,该pattern字段似乎不支持完整的正则表达式语法(如果我使用.或者\s,例如,它尝试匹配文字字符).

如何使用完整的正则表达式语法搜索/替换字符串?

regex bash

142
推荐指数
6
解决办法
19万
查看次数

为什么这个正则表达式几乎与所有内容相匹配?

我无法解释,但请查看以下内容:

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)

带有+号的用户名不应与该正则表达式匹配.

regex bash

1
推荐指数
1
解决办法
59
查看次数

标签 统计

bash ×2

regex ×2