2009-06-18 9 views
0

何か+何か+何かのための正規表現... +何か?唐辛子+トマト+スイカの正規表現

申し訳

ので、私の偉大な英語と脳の - >キーボード接続

+1

+記号で式を解析したいと思っていますか? 意味: A + B + 1.2345 +リンゴ+サンドイッチ+バナナ+(9)? 数字だけが必要ですか?または手紙?あるいは文字通り「何か+何か+何か」を検出したいのですか? – FreeMemory

+0

文字a-zの間に+記号がある場合、+記号の数は単語の数より小さくする必要があります 例 - >コショウ+トマト+スイコン – Ante

+3

コショウ、トマト、スイカ?あなたは何を食べているのですか? – jonnii

答えて

0
/\w+(\s*\w+)*(\+\w+(\s*\w+)*)*/ 

あなたがそれを必要とする場合、これはまた、複数の単語のフレーズと一致する必要があります。アルファベット以外の文字にもマッチしますが、明示的にすべての文字を除外したい場合は、\ wを[a-z]に置き換えることができます。大文字が必要な場合は、大文字と小文字を区別しない正規表現を指定してください。

編集:以下のコメント投稿者私は\ wの後ろにプラス記号がないので、一度に1文字しか一致しませんでした。 \ w +は単語全体と一致し、その間にオプションのスペースがあり、これが元の意図です。キャッチをありがとう。

+0

あなたは現在の人々の中で最も低い評判を持っています – Ante

+0

まあ、私は私の担当者についてあまり心配していません。問題のニーズに最も合った答えを選ぶべきですが、それが私なら大丈夫です。 –

+1

ダグがここで何をしようとしているのか分かりませんか?\ w(\ s * \ w)*を\ w +(\ w +)*に置き換えると、フレーズを一致させることができます。それ以外の場合、式全体は\ w +(\ + \ w +)* –

2

「何か」は常に言葉であり、少なくとも2つのエントリ

\w(\+\w)+ 

または任意の繰り返しシーケンスのための

を必要とする場合
\w(\+\w)* 
11
([a-zA-Z]+(\+[a-zA-Z]+)*) 
+0

これはOPが本当に望んでいたかどうかはまだわかりませんが、これをうまく笑ってしまいましたそれにもかかわらず:) – patjbs

0

「+」と「。」をエスケープするだけです。彼らが予約されているので。例えば

、ルビーに:それはあなたが求めているものだ場合

/something\+something\+something \.\.\. \+something/ 
0

あなたは、あなたの正規表現で\+を使用して+メタ文字をエスケープすることができます。

([a-z]+\+)*[a-z]+ 

または

[a-z]+(\+[a-z]+)* 
1

は、ここで更新答えがですか?

"Or+Something+like+that".split('+') 
0

、別の方法として、文字列の分割方法の作業になります。質問を明確にしたコメントに基づいて

+0

+1はすべてのことを行うために正規表現を強制しません。 – Soviut

+1

を除いて、JavaではString#splitは正規表現の操作です... –