3

「ifa=b or a = c or a = d or a = e」などの束を避けるために、簡潔な比較ステートメントを使用しようと苦労しています。

代わりに、perlで行うように正規表現とパターンマッチングを使用しようとしています。

set st = "red"

この線

if($ st =〜黄色|青|赤|緑)

動作しません(if:式の構文。)引用符、括弧を使用してみましたが、エラーがなければ、期待した結果が得られません。

重い構造を回避する方法はありますか?

if($ st ==黄色)|| ($ st ==青)|| ($ st ==赤)|| ($ st ==緑)?

または同じ質問をする別の方法:tcshは「文字列aに文字列bが含まれている場合」のようなものを許可しますか?tcshリファレンスに部分文字列の概念が見つかりませんでした。

どうもありがとう!

4

2 に答える 2

8

tschはわかりませんが、このページの情報(特殊文字の下)を見てください:http ://www.tcsh.org/tcsh.html/Filename_substitution.html http://www.cs.duke.edu/csl /docs/csh.html 色を中かっこで囲む必要があるようです。

if ($st =~ {yellow,blue,red,green})
于 2011-01-06T01:14:20.820 に答える
5

演算子の右側にあるの~=は「グロブパターン」であり、正規表現ではありません。(たとえば、正規表現.では任意の文字に.*一致し、0個以上の任意の文字に一致します。glob-patternに相当するのは?*です。)

{...,...,...}glob-patternsの構文の一部です。 man tcsh完全な説明については。

正規表現に一致させる必要がある場合は、次のexprコマンドを使用できます。man exprまたはinfo expr詳細については。

于 2011-07-30T20:22:58.267 に答える