
No.1ベストアンサー
- 回答日時:
$tclsh
% set str {gasgsagsdagaromdfgagasdfgf}
gasgsagsdagaromdfgagasdfgf
% set flag 0
0
% echo $flag
0
% set flag [ regexp "rom" $str ]
1
% echo $flag
1
「配列」がTclでいうところの array なのか list なのか
わかりませんが、
ある文字列を含むかどうかは上のような判定ができます。
しかしTclとはどマイナーなものが。
この回答への補足
ご回答ありがとうございます。
配列はarrayです。
string first $rom $*******rom*****
という書き方はだめですか?
[get_arry Table:element name]
のelement nameに*******rom*****が入っています。
いかがでしょうか?
自分なりに
書いてみました。
set elem_name_len [string fist rom [get_arry Table::elem name]
if {$elem_name_len > 0}{
set flag 1
} else {
set flag 0
}
はいかがでしょうか?
あっていたら、ありがとうございます。
No.3
- 回答日時:
regexp を使った正規表現マッチングだと、
たとえば
regexp "roo?m" $str
とすると、rom か room を含んでいるかどうかという
判定が可能ですが、
string firstではこれはできません。
今回検索すべきものは複雑なパターンではなく単純な文字列なので、
string first でも問題ないし、逆に固定文字列を
検索するための最適化が行われていることも
期待できるので、速度的には有利だろうということです。
string first だと、メタ文字も単なる普通の文字と
見なすだけの話ですので上述のような複雑(かもしれない)パターンで
検索するのでなければ気にすることはありません。
逆にそのようなパターンを探すのにはstringは使えません。
大変ありがとうございました。
TCLをいろいろ見てると、Cより簡単な面もあるけど
正規表現とか、複雑ですね。
とても勉強になりました。
No.2
- 回答日時:
array/list の要素をすべて舐めていくかと思ったのですがちがったのですか。
正規表現マッチングだと結果が 0/1になるので#1の回答で使いましたが、
自分で1/0を設定するからどう言う値でも良いということなら、
string first のほうが良いと思います。
正規表現のメタ文字がないのに正規表現マッチングをするよりは単純に
検索したほうが多少は早いでしょうし。
この回答への補足
ご回答ありがとうございます。
さっそく本日WSにてやってみます。
>正規表現マッチングだと結果が 0/1になるので#1の回答で使いましたが、
>正規表現のメタ文字がないのに正規表現マッチングをするよりは単純に検索したほうが多少は早いでしょうし。
この表現私にとって理解不能な言葉なので、噛み砕いて説明していただくと助かります。
おはようございます
. ^ $ [ ] * + ? | ( )
がメタ文字で、正規表現では
このれらの文字の前にに¥を付けないといけない事がわかりました。
stringではメタ文字は対応しませんか?
そうすると#1の書き方の方がベストでしょうか?
1/0の設定は自分でかけます。
ご指導お願いいたします。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
-
プロが教える店舗&オフィスのセキュリティ対策術
中・小規模の店舗やオフィスのセキュリティセキュリティ対策について、プロにどう対策すべきか 何を注意すべきかを教えていただきました!
-
正規表現 TCL regexp関数
その他(プログラミング・Web制作)
-
cshでのリンクファイルの存在確認方法
その他(OS)
-
Tcl/Tkの超初歩的な質問です。
その他(プログラミング・Web制作)
-
4
cshの文字列操作(0埋め)
その他(プログラミング・Web制作)
-
5
cshで文字列分割
その他(プログラミング・Web制作)
-
6
Cシェル内でBシェルの様な関数の記述方法はありますか?
UNIX・Linux
-
7
expectを用いた正規表現[]のgrepについて
UNIX・Linux
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
人気Q&Aランキング
-
4
C#でstringをポインタとして渡す
-
5
アルファベットをカウント、
-
6
シリアル通信で0x00を送信した...
-
7
16進数を2文字ずつ配列に格納し...
-
8
アルファベットの出て来た回数
-
9
Char型とString型
-
10
_tcscpy_s(wcscpy_s)の第二引数...
-
11
AnsiStringについて
-
12
%dなどの違い
-
13
数字の入った配列をファイルへ...
-
14
関数に文字列を渡すことについて
-
15
WSH(VBS)でJSONの文字列を読み...
-
16
TCL言語で文字列検索方法を教え...
-
17
fgetsで配列に数字を入れる。
-
18
C++で文字列の右端から特定の文...
-
19
VBAのコードで Dim Obj As Acce...
-
20
C言語 配列の長さの上限
おすすめ情報
公式facebook
公式twitter