String tcsh中的字符串/子字符串匹配
我正在努力尝试使用一个简洁的比较语句来避免一大堆“如果a=b或a=c或a=d或a=e”等等 相反,我尝试使用正则表达式和模式匹配,就像在perl中一样 与 set st=“红色” 线路 如果($st=~黄色|蓝色|红色|绿色) 只是不起作用(如果:表达式语法。) 我尝试使用引号和括号,但如果没有错误,我永远不会得到预期的结果 有没有办法避免重型结构: 如果($st==黄色)| |($st==蓝色)| |($st==红色)| |($st==绿色) 或者以另一种方式问同样的问题:tcsh是否允许类似“如果字符串a包含字符串b”的内容?我在tcsh引用中找不到任何子字符串的概念String tcsh中的字符串/子字符串匹配,string,comparison,substring,tcsh,String,Comparison,Substring,Tcsh,我正在努力尝试使用一个简洁的比较语句来避免一大堆“如果a=b或a=c或a=d或a=e”等等 相反,我尝试使用正则表达式和模式匹配,就像在perl中一样 与 set st=“红色” 线路 如果($st=~黄色|蓝色|红色|绿色) 只是不起作用(如果:表达式语法。) 我尝试使用引号和括号,但如果没有错误,我永远不会得到预期的结果 有没有办法避免重型结构: 如果($st==黄色)| |($st==蓝色)| |($st==红色)| |($st==绿色) 或者以另一种方式问同样的问题:tcsh是否允许类似
万分感谢 我不知道tsch,但查看本页信息(特殊字符下): 看起来你需要用大括号把颜色围起来:
if ($st =~ {yellow,blue,red,green})
~=
操作符右侧的东西是“glob模式”,而不是正则表达式。(例如,在regexp中,
匹配任何字符,*
匹配零个或多个任意字符;全局模式等价物为?
和*
)
{…,…,…}
是glob模式语法的一部分<代码>手动tcsh获取完整说明
如果需要匹配正则表达式,可以使用
expr
命令man expr
或info expr
了解详细信息。Wow,这确实有效!我尝试了花括号,但缺少的是值之间的“,”分隔符:-/一直尝试使用管道字符。非常感谢。谢谢强制链接:。