2016-06-29 16 views
1

私はここで検索しましたが、私は満足する答えを見つけていないので、私は尋ねることに決めました。 は、私のような表現を見つけるために、文字列のコレクションを検索する必要があります:私はc#regex特定の文字と数字のシーケンスを持つ文字列を取得します

[A][BC][ ]\d{5} 

この正規表現を試してみた。しかし、残念ながら、文字列に

#XXAB 123456789
GGAB 12345678901 
AB 123456 
SAB 123456789 

もあります

AB 12345 
AC 12345 

をと上記の式はこれらすべてを有効にします。私が発見し、

[A][BC][ ]\d{5}$ 

を試してみました。しかし、これは何も一致していませんしました 。

質問には、5つの数字の後ろに数字を増やした文字列が続く式がありますか?

MY DESCRIPTION WITH DATA XXXAB 12345BCD 

とも

:私は私の博覧会には本当に明確ではなかったと思うの答えから

、文字列が長い文字列の途中で私は、私が一致しなければならないいくつかの可能な文字列を設定しています

MY SECOND DESCRIPTION WITH DATA REF. AB 12345 

とも

MY THIRD DESCRIPTION WITH DATA REFAB 12345 

とも

AB 12345WITH A DESCRIPTION FOLLOWING 
AB 12345 WITH A SPACE AND DESCRIPTION FOLLOWING 

データベースの文字列はすべて大文字です。

+0

'[0-9] {5}(^ [0-9])* $' - 厳密に5つの –

+0

おかげでこの文字列の数字以外のものに続く数字が、終了$ Iとそれを使用して一致するものがないかもしれない.Netの何か?終了$なしで動作するように見えたが、私はフォームの文字列を見つけた:XYAB 1234567 1234として有効。これは本当に面倒なようです。とにかくお返事ありがとうございます –

+0

文字列 'XYAB 1234567 1234'には、" 5つの数字の後ろに数字を除いた数字 "がありません:' 1234'はちょうど** 4 **数字で、** 5 **や '34567私の正規表現「IMHO」が正しくなるように '' *は* 1234で続きます。言い換えれば、 "5つの数字の後ろに何よりも数字が多い"という条件を入れたいのですか? –

答えて

1

?! lookahead。

A[BC] \d{5}(?!\d) 

デモを参照してください。

https://regex101.com/r/oR7zJ6/2

+0

ありがとうございます。申し訳ありませんが、すべて正しく説明していないのですが、要求に追加した文字列が文字列の真ん中にあります。 –

+0

@Sabrina_cs check update – vks

+0

これは正しく動作し、5つの番号のレコードだけが一致します。助けを借りてくれてありがとう。 –

0

ジャストラインの始まりを示すために^を使用します。

^A[BC] \d{5}$ 

これはスペースと5桁その後、BまたはCのいずれかに続いてAで始まる行と一致します。それ以外は何もない。

注意可能な文字が複数ある場合は常に、文字クラスが使用されるため、[A]の代わりにAと言っています。 A[A]は同等ですので、簡略化するにはちょうどAと言います。

https://regex101.com/r/mZ3mZ6/4は、あなたが与えた例とどのように一致するかを示し、それ以外のものは表示しません。

+0

お返事ありがとうございました。あなたの答えは、私の質問がはっきりしていないことに気付かせました。文字列は、通常、大文字の冒頭または終わりにあっても大文字の中央にあります。 –

+0

@Sabrina_csは、一致する必要のあるケースと、一致する必要のあるケースを更新し、目的の一致が得られるようにします。 Btw、https://regex101.com/r/mZ3mZ6/5はそれを解決します。 – fedorqui

関連する問題