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


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

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

回答の条件
  • 1人5回まで
  • 登録:
  • 終了:2014/04/07 01:37:49

ベストアンサー

id:mapk0y No.2

回答回数1ベストアンサー獲得回数1

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

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


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

id:Borom

ありがとうございます。完璧です。
very magicなる指定があるのですね。
大変参考になりました。

2014/04/07 01:36:52

その他の回答1件)

id:siachan No.1

回答回数91ベストアンサー獲得回数23

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

id:Borom

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

2014/04/07 01:37:42
id:mapk0y No.2

回答回数1ベストアンサー獲得回数1ここでベストアンサー

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

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


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

id:Borom

ありがとうございます。完璧です。
very magicなる指定があるのですね。
大変参考になりました。

2014/04/07 01:36:52

コメントはまだありません

この質問への反応(ブックマークコメント)

トラックバック

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません