2012-01-09 6 views
0

数字または整数の間に1文字/を含む文字列を一致させる必要があります。"1/2"のような文字列を検証する正規表現

例:

1 YES 
1/2 YES 
some_text NO 
some/test NO 
some NO 
2///2 NO 
/12 NO 
1/2/ NO 
1.2/3 NO 

編集:rubular.com i`mことで は、この正規表現をチェックしてみました:/\d+(\/\d+)?

正規表現のように見える必要がありますどのように?あなたは整数のみまたは画分を含めている場合は

+4

*したがって、これらの全てが許容され、* "含む/または整数": '1 /' '/ 2 '、' //// 2 '、' 1/2/3' 、 '1 // 2'、...そうでない場合は、質問を編集し、より正確に要件を指定してください。また、[あなたは何を試しましたか](http://mattgemmell.com/2008/12/08/what-have-you-tried/)? –

+0

はい私はrubular.comを使いました – rege

答えて

4

\d+(\/\d+)? 

あなたにもできるようにしたい場合は、小数点以下:

\d+(\.\d+)?(\/\d+(\.\d+)?)? 

編集:私はたくさんのを作ってるんだ注意あなたが本当に望むものについての前提。あなたの質問に対するBart Kiersのコメントは非常に重要です。あなたが望むのは数字だと仮定して自由を取ったのです。それが真実でない場合は、質問を明確にしてください。

Edit2:私はもう1つの重要な前提もしています。あなたの質問には、 "には /または整数が含まれています。"文字列が数字だけで何もないことを確認したい場合は、行の先頭に^を追加し、末尾に$を追加します。例:

^\d+(\/\d+)?$ 
+1

この回答は、正規表現エンジンがデリミタ(この場合は '/')で動作することを前提としています。正規表現は '/'をエスケープすることを強制しません。 –

+0

正規表現にアンカーを追加する必要があります。 "Foobar1" – stema

+0

@stema最初に私はそれらを追加しましたが、OPは "** ** /または整数を含む文字列"と言っていたので削除しました。彼が正しく話したら、 "foobar1"が有効です。私はそれを明確にするためにメモを追加します。 – ean5533

関連する問題