スパム対策として書込み時にID/PWを要求されますが、ローマ字で ほげ/ホゲ で書き込めるようになります。

何でもマッチ、最小マッチ

  • ページ: RegexQA
  • カテゴリー: その他
  • 投稿日: 2005-04-23 16:52:31 (土)

メッセージ

Vim6+ Part11 より

60  From:名無しさん@お腹いっぱい。  Date:2005/04/04(月) 15:47:48   Mail:sage
 正規表現で質問です。
 // <test
 static final int __ = 0;
 // test>
 
 // <test
 static final int XX = 1;
 // test>
 
 上記をマッチ対象として
 // <test ... // test>
 // <test ... // test>
 と二つに分けたマッチさせたくて
 
 .*<test\(\n.*\)*.*test>
 とすると二つ同時にマッチになるので
 .*<test\(\n[^test>]*\)*.*test>
 としてみました。
 
 [^test>]では't','e','s','t','>'を含まないものにマッチするとありましたが
 文字列"test>"以外にマッチさせたいのですがどうすればいいのでしょうか
 .*<test\(\n[^\(test>\)]*\)*.*test>こうやってみましたがだめでした
 
 おしえてください
91  From:名無しさん@お腹いっぱい。  Date:2005/04/06(水) 12:11:35   Mail:sage
 >>60
 \(\_^.*<test\_$\)\(\_.\{-}\)\(\_^.*test>\_$\)
 
 1. \(\_^.*<test\_$\)   # <testで終わる行
 2. \(\_.\{-}\)         # どんな文字でもマッチする \_.  最小マッチ \{-}
 3. \(\_^.*test>\_$\)   # test>で終わる行
 最小マッチを使って一致する文字列がなるべく短くなるようにします。
 結果として2.の\_.(全てにマッチ)が3.を含まないようにできます。

  • そのまんまの"\@!"てのがあって、"test>"にマッチしない一文字は"\(test>\)\@!."と書ける -- 2005-04-23 21:18:27 (土)



トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2014-10-14 (火) 01:13:17 (1350d)