gpt4 book ai didi

tcsh - 检查字符串是否与 tcsh 中的特定模式匹配

转载 作者:行者123 更新时间:2023-12-02 07:42:33 26 4
gpt4 key购买 nike

我尝试将用户输入的字符串与特定模式进行匹配,确切地说,我想检查字符串是否以大写字母开头,然后以任何大写、小写字母或数字继续。我想在 tcsh 中执行此操作,我知道使用 bash 更好,但我必须使用 tcsh。

所以基本上我想在 tcsh 中执行以下操作:

if [[ $name =~ ^[A-Z][A-Za-z0-9]*$ ]]

这是迄今为止我的代码:

    #!/bin/tcsh
set name
while ( $name == "" )
echo 'Give an account name!'
set name = $<
if ( $name =~ '^[A-Z][A-Za-z0-9*$]' ) then
echo 'Name accepted!'
else
echo 'Not correct format!'
set name = ""
endif
end

我不断地陷入“其他”部分。非常感谢您的帮助!

最佳答案

使用 =~ 比较运算符时,右侧必须是可能包含星号或问号通配符(如文件匹配中)但不包含 RegEx 的模式。

这是我想出的解决方法......

#!/bin/tcsh
set name
while ( $name == "" )
echo 'Give an account name!'
set name = $<

set cond = `expr $name : '^[A-Z][A-Za-z0-9]*$'`
set n = `echo $name | wc -c`
@ n--

if ( $cond == $n ) then
echo 'Name accepted!'
else
echo 'Not correct format!'
set name = ""
endif
end

请注意,正则表达式也需要修复。

关于tcsh - 检查字符串是否与 tcsh 中的特定模式匹配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30290413/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com