2011-01-12 2 views
3

私は与えられたregex-capturegroupとのベストマッチを見たいと思っています。 例:regexのキャプチャグループとのベストマッチを見つけよう

正規表現:(AB | ABC)

サンプル:ABCDEF

結果:AB

しかし、私はABC(オプションリストからベストフィット)を見つけるしたいと思います。

どうすればいいですか? (グループ内の両方の選択肢を交換する場合を除く)

ありがとうございます!

+0

私はあなたがそのようなことを行うことができます疑います。 –

答えて

3

ベストマッチを順番に指定してください(たとえば、最長の文字列を最初に指定するなど)。多くのREエンジンは、彼らの「熱心な評価」モードで一番左を優先します。最長一致の代替が返されるだけPOSIXのRE任務:

http://www.regular-expressions.info/alternation.html

+2

良いアドバイス、+1。私は、POSIX以外の正規表現エンジンの動作を好むと付け加えたいと思います。なぜなら、それは、私が "ベスト"マッチと見なすものを自分自身で判断できるからです。常に最長のものである必要はありません。サイズは...あなたが知っている... –

+0

;-)はい、あなたは正しいです。 私はキャプチャグループ内の注文によってベストマッチ発見を行います。 – Sascha

関連する問題