Vla*_*ert 5 unix linux terminal uppercase git-bash
我正在尝试检查任何大写字母的字符串。我的代码未显示任何输入的大写字母,可能是“ sss”,“ Sss”,“ SSS”
if [[ "$pass" =~ [^a-zA-Z0-9] ]]
then
echo "Upper found"
else
echo "no upper"
fi
Run Code Online (Sandbox Code Playgroud)
[^a-zA-Z0-9]表示除a-z,即小写字母,A-Z,即大写字母和0-9,即数字之外的任何内容。sss, Sss,SSS都只包含字母,所以它们不能匹配。
[[ $password =~ [A-Z] ]]
Run Code Online (Sandbox Code Playgroud)
如果密码包含任何大写字母,则为真。
您应该LC_ALL在运行此类测试之前进行设置,例如
$ LC_ALL=cs_CZ.UTF-8 bash -c '[[ ? =~ [A-Z] ]] && echo match'
match
$ LC_ALL=C bash -c '[[ ? =~ [A-Z] ]] && echo match'
# exit-code: 1
Run Code Online (Sandbox Code Playgroud)
[[:upper:]] 应该总是工作。
| 归档时间: |
|
| 查看次数: |
11954 次 |
| 最近记录: |