2012-03-31 19 views
0

いくつかの正規表現マッチングを使用していますが、特定の文字パターンをどのように除外するかを検討しようとしています。正規表現で特定の文字パターンを除外する方法

5 -  #in words: digit, space, dash & space) 

は、私が個別のコンポーネントを除外する方法を知っている:具体的には、私は次のパターンを除外したい[^5 ^-]が、私は特定のパターンを除外していますよ。これは可能ですか?

更新 - Rubyをプログラミング言語として使用しています。ここで

は、いくつかのサンプルの入力と所望の出力である。:

Input: 1 - Blue-Stork Stables; 2 - Young, Robert, S.; 3 - Seahorse Stable; 4 - Carney, Elvis; 5 - Guerrero, Juan, Carlos-Martin; 6 - Dubb, Michael; 7 - Summers, Hope; 8 - DTH Stables; 9 - Peebles, Matthew\n 

所望の出力は次のようになります。

Output: Blue-Stork Stables; Young, Robert, S.; Seahorse Stable; Carney, Elvis; Guerrero, Juan, Carlos-Marting; Dubb, Michael; Summers, Hope; DTH Stables; Peebles, Matthew\n 

ブルー、コウノトリ厩舎とフアン・カルロス・マルタンのダッシュに留意してください。

+0

*正確に* dあなたは「除外」を意味しますか?その正確なパターンだけがマッチしないようにすべきか、あるいはそのパターンが文字列の始めか文字列のどこかに見つかるかどうか?あなたがしたい/したくない文字列の例を挙げてください。 –

+2

'[^ 5^- ]'は意図した通りに動作しません。 *は** 5、 ''、 '' '、' ''ではありません。 – Kobi

+0

私が除外したものを除いてすべてが一致することを意味します。たとえば、すべてのデータと一致してタブを除外するため、タブ区切りファイルでこの除外[^ \ t] +を使用します。 – Mutuelinvestor

答えて

4

EDIT:「除外」ではなく「除外」を意味します。問題ありません:

入力を目的の出力に変換します。私は1桁以上の数字を許可する自由を取っています(数字が10以上になると、それらも完全に削除したいと思うかもしれません)。


は、あなたが「除外」によって何を意味するかに応じて、(「歴史的な理由」のための古い答えが)、あなたが負の先読みアサーションを探していることが表示されます:

^(?!.*\d -) 

ます5 -を含む文字列で失敗し、他のすべての文字列で成功します。

+0

私は '^(?!\ d + \ s * - \ s *)。*'に行きますが、確かにたくさんの情報がここにありません... – Kobi

関連する問題