私は乱雑な電話番号のリストを持っていますが、いくつかの(偽の可能性があります)同じ繰り返し数字を含んでいますが、その他の句読点、 .NET RegExを使用してそのような番号を識別します。ここに例があります:正規表現:数字以外の数字を無視して一致する繰り返し数字
00000000000000
(11)1111111111
22/ 222-2222222222
cell +33,333-3333-3333.
14 244-44444 Ext. 444
私は最初の4に一致する正規表現が必要ですが、他の数字を持つ最後のものは一致しません。私の^(\d)\1+$
は最初の数字をキャッチします。私も^([.-[\D]])\1+$
を試してみてください。失敗しました。 ^(\d)(?:[\1-[\D]])+$
と同じです。簡単な方法は、\D
で1パスのすべての非数字を削除し、最初の正規表現を使用することですが、正規表現エンジンへの2回の呼び出し(SQL Server内からの高価なCLR呼び出し)を作成したくありません。
出力は、各行に対して単純なブール値0-1です。 0試合があるときに一致し、1が存在しないとき:
1
1
1
1
0
UPDATE: はこの質問を少し拡張します。 regexがマッチしたときに、行全体を消去したい場合、置換正規表現は何ですか?したがって、置換正規表現は4つの空白行と1つの元の行を返します。私は見返りでこれをやろうとしていますが、失敗しています。
出力をどのように表示する必要がありますか?そのようにすれば、何をする必要があるのかが分かります。 – JBone
これは一致/不一致出力です。行に一致する文字列があれば1、そうでなければ0になります。 –
['^ \ D *(\ d)(?:\ D * \ 1)+ \ D * $'](https://regex101.com/r/jYSfW1/2)を試す –