人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

Vimの正規表現にて、一度に複数の条件を指定する方法を教えてください。

例えば、以下いずれかの条件を満たす場合にマッチさせたいです。
- 【自動 または 【定期 から始まる場合
- http:// または https:// が含まれる場合
- (参照)または(関連)で終了する場合
など。

以下で試しましたがうまく行きません。
/^(【(自動|定期)).*((http\|https)\:\/\/)*.*(\((参照\|関連\)))$

●質問者: のぼる
●カテゴリ:ウェブ制作
○ 状態 :終了
└ 回答数 : 2/2件

▽最新の回答へ

1 ● siachan

Vimでは試していませんが、正規表現としては
(^【(自動|定期))|(.*https?://.*)|(\((参照|関連)\)$)
こんな感じじゃないでしょうか


のぼるさんのコメント
ありがとうございます。 Vimの書式とは若干ことなりますが、大変参考になりました。 |で区切れば複数の^や$も認識できるのですね。

2 ● mapk0y
ベストアンサー

メタ文字の扱いを考えると very magic にしたほうがいいと思います。
以下手元で試して上手く言ったものです。
1) /のエスケープ処理の関係で区切り文字を / -> ! にしています。
2) very magic を有効にするため、\v から開始しています。
3) 投稿の関係で「(参照」の前にスペースを入れています。削除してお使いください

!\v^(【(自動|定期).*)|(.*https?://.*)|(.*\( (参照|関連)\))$!


参考ページ:
Vim-users.jp - Hack #55: 正規表現のメタ文字の扱いを制御する
http://vim-users.jp/2009/08/hack55/


のぼるさんのコメント
ありがとうございます。完璧です。 very magicなる指定があるのですね。 大変参考になりました。
関連質問

●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ