OKWAVEのAI「あい」が美容・健康の悩みに最適な回答をご提案!
-PR-
解決
済み

指定した文字列を複数含むという条件

  • 暇なときにでも
  • 質問No.181708
  • 閲覧数138
  • ありがとう数2
  • 気になる数0
  • 回答数2
  • コメント数0

お礼率 8% (3/37)

たとえば、「test」という文字列を2個含む場合に真を返すような条件を作れません。
「2つ以上」ではなくて、「2つ」でもけっこうです。
「test」という文字列が1つであれば偽、2つならば真にしたいでのす。
通報する
  • 回答数2
  • 気になる
    質問をブックマークします。
    マイページでまとめて確認できます。

質問者が選んだベストアンサー

  • 回答No.1
レベル10

ベストアンサー率 66% (103/155)

()で囲んで、\1で後方参照します。以下サンプルです。
>cat sample.pl
while( <> ) {
if ( /(test).*\1/) {
print $_;
}
}

>cat test.txt
1:test
2:test test
3:test aaa test
4:test test test

>perl sample.pl test.txt
2:test test
3:test aaa test
4:test test test
お礼コメント
saru_monmon

お礼率 8% (3/37)

ありがとうございました。
投稿日時 - 2001-12-08 11:32:58
-PR-
-PR-

その他の回答 (全1件)

  • 回答No.2
レベル12

ベストアンサー率 40% (237/589)

「2つ」が検出できれば「2つ以上」あることは確実なので、($_ に文字列が入っているとして)   if (/test.*test/) {     2つ以上ある   } のような判定でいいと思うのですが… 補足しますと、「.*」というのは、「そこに0個以上の文字がある」ということです。 したがって、これで「test 123 test」も「testtest」もマッチします。 ...続きを読む
「2つ」が検出できれば「2つ以上」あることは確実なので、($_ に文字列が入っているとして)
  if (/test.*test/) {
    2つ以上ある
  }
のような判定でいいと思うのですが…
補足しますと、「.*」というのは、「そこに0個以上の文字がある」ということです。
したがって、これで「test 123 test」も「testtest」もマッチします。
お礼コメント
saru_monmon

お礼率 8% (3/37)

ありがとうございました。
投稿日時 - 2001-12-08 11:33:04


このQ&Aで解決しましたか?
関連するQ&A
-PR-
-PR-
こんな書き方もあるよ!この情報は知ってる?あなたの知識を教えて!
このQ&Aにはまだコメントがありません。
あなたの思ったこと、知っていることをここにコメントしてみましょう。

その他の関連するQ&A、テーマをキーワードで探す

キーワードでQ&A、テーマを検索する
-PR-
-PR-
-PR-

特集


いま みんなが気になるQ&A

関連するQ&A

-PR-

ピックアップ

-PR-
ページ先頭へ