2017-03-29 8 views
0

単語の後ろに1つのスペースまたはタブ文字と5桁の数字をマッチさせようとしています。例えば、some noise text off 12345 some noise text again. もう1つの例はSome noise text off 12345.です。単語の後にスペースとN桁の数字が続きます

正規表現は "off 12345"と一致する必要があります。 番号の後に句読点を付けることができます。 パターンは "off"という単語と一致し、数字の後ろの単語は一致しません。

おかげ

答えて

1

あなたがより一般的であるために、この

off\s\d{5} 

Working demo

+0

あなたの助けを借りてフェデリコ。 「12345テストをテストしてください」とは一致しません。 < - this string ... – Davita

+0

@Davita、それは一致します、ここで[デモ](https://regex101.com/r/M5bvAh/3)をチェックしてください。しかし、そのパターンを含む行をマッチさせたい場合は、 '。* off \ s \ d {5}。* 'を使用することができます。*' –

+0

残念ですが、Federicoは正しく動作しています。私が今問題としているのは、6文字の数字の最初の5文字に一致するということです。たとえば、1から5までの123456と一致します。これは、5文字以上の長さの数字と一致しないようにすることは可能ですか?ありがとう – Davita

1

のような単純な正規表現を使用することができ、あなたは

\b\w+\s\d{5}\b 

ここ\bマッチを使用することができます境界。あなたがそれを使用しない場合、間違って一致する可能性があります

123off 12345 
off 1234567 
+0

こんにちは、ありがとう。ほんとうにありがとう。問題は、正確に5桁の数字にマッチする正規表現を探していることです。今ではそれは長さで5つ以上の数字にもマッチします。 – Davita

+0

私はあなたの例をregex101でテストしました。問題はないようです。あなたのどちらのケースではうまくいかないのですか? –

+0

私はJavaでテストしていますが、実装はプラットフォームによって異なると思いますか?たとえば、 "12345テストのテスト"と一致しません。 – Davita

関連する問題