1

プレーンテキストから7桁の数字を検出しようとしていますが、これは私が使用している正規表現です。

Regex sevenDigit = new Regex(@"(?<!\d)\d{7}(?!\d)");

ここで、特定のプレフィックスで始まらない7桁の数字のみを一致させたいと思います。具体的には「usr_id」です。usr_id = 1234567の形式ではないものだけに一致するようにこの正規表現を変更するにはどうすればよいですか?

ありがとう!

4

1 に答える 1

4

私はこれを行います:

Regex sevenDigit = new Regex(@"(?<!usr_id=)\b\d{7}\b");

\b「数字の始まり」と「数字の終わり」をより洗練された言い方である単語の境界にも注意してください。それらは あなたのアサーションやルックアラウンドのアサーションとまったく同じではありません(最も注目すべきは、正規表現が一致を許可する範囲内で一致を許可しないことです)。したがって、このアプローチが本当に必要な場合は、次のこともできます(?<!\d)(?!\d)1234567abc1234567xyz

Regex sevenDigit = new Regex(@"(?<!\d|usr_id=)\d{7}(?!\d)");
于 2013-01-04T06:45:23.337 に答える