San*_*eep 4 regex linux bash shell
如何验证字符串是否也以一个或多个空格开头和结尾?
if [[ $username =~ [^0-9A-Za-z]+ ]]
Run Code Online (Sandbox Code Playgroud)
(基本上输入应该是字母数字,任何地方都不能有空格,即使在开头或结尾,也不能有逗号、下划线、连字符等)
不幸的是,上面的正则表达式不匹配前导和尾随空格,但它匹配之间的空格?
没有 awk、sed,有什么方法可以修复上述正则表达式以匹配前导和尾随空格吗?
提前致谢
Bash 正则表达式在引用时可能会很棘手:正则表达式元字符不得被引用,但是,由于空格在 shell 中很重要,因此必须引用空格。此正则表达式匹配以空格开头和结尾的字符串:
[[ $s =~ ^" ".*" "$ ]] && echo y
Run Code Online (Sandbox Code Playgroud)
要测试字符串是否包含空格,请执行以下操作之一:
[[ $s =~ [[:space:]] ]] && echo y
[[ $s == *" "* ]] && echo y
Run Code Online (Sandbox Code Playgroud)