2017-03-03 57 views
3

Aの前に1-5の数字またはBの前に1-4の数字を一致させる必要があります。文字の前に4桁または5桁の数字を一致させる正規表現

だから私の正規表現は次のようになります。 (\d{1,5}A)|(\d{1,4}B)

しかし、これはA前の最後の4桁の数字と一致します。

どのようなソリューションですか?

+0

問題は何ですか?あなたは 'A'や' B'とマッチしたいだけですか? –

答えて

4

A

が数字に先行されていないにあなたの正規表現の前にアイテムを要求する前に、これが最後の4桁の数字に一致します。

(?<!\d)((\d{1,5}A)|(\d{1,4}B)) 

別の解決策を要求することですワード境界\b

lookahead/lookbehind tutorial

+1

['\ b'](http://www.regular-expressions.info/wordboundaries.html)も同様に仕事をすることができます。 – sp00m

+0

@ sp00m良い点、ありがとう! – dasblinkenlight

+0

私はこの問題を理解しておらず、これが解決策でなければならない理由を理解していません。あなたの正規表現はまだ "Aの前の最後の4桁に一致します" –

0

の線に沿って何か:私はcheatsheetを見てみ助言する

(\d{1,5}A)|(\d{1,4}B) 

。あなたが正規表現に精通していない場合は、この種の単純な正規表現を自分で実行してみてください。

regextesterのようなオンライン正規表現テストアプリもあり、コードを書くことなく正規表現をテストすることができます。

関連する問題