0

私は正規表現が苦手で、必要なものに近い例を見つけることができませんでした。よろしくお願いします。これは、ユーザーが探しているものが数字または数字 + 文字シーケンスであることが既にわかっている場合に、探しているものに直接移動する検索入力ボックス用です。

数字で始まる必要があり、その数字は 1 桁から複数の桁にすることができ、数字に続く文字は 0、1、または 2 桁にすることができます。

渡す例: 1 12 123456 123a 1234ab 123456789ab

失敗の例: a ab a1 ab12 1abc 123abc 1-a 1_a

あなたはポイントを取得します。渡す文字列については、数字と文字を分離する必要もあります。

再度、感謝します。

言語はC#です。着信文字列をテストし、正規表現に合格した場合は数字と文字の部分に分割する必要があります。

4

5 に答える 5

3

試す

[0-9]+[a-z]{0,2}

お役に立てれば。

于 2012-05-25T20:10:22.600 に答える
2

これを試して

var regex=new Regex("^(?<numbers>[0-9]+)(?<letters>[a-z]{0,2})$",RegexOptions.IgnoreCase);
var match=regex.Match(testString);

プロパティmatch.Successは、成功して値を取得できるかどうかを示します

var numbers=match.groups["numbers"].Value;

var letters=match.groups["letters"].Value;
于 2012-05-25T20:26:05.650 に答える
1

/([0-9]+)([a-zA-Z]{0,2})/大文字...

于 2012-05-25T20:17:09.963 に答える
1

これはうまくいくはずです:

/([0-9]+)([a-z]{0,2})/

この正規表現を使用している言語によって、完全なパターン マッチとそれに続くサブパターン マッチを取得する方法が異なる場合があります。

編集:

2 番目のサブパターンを修正して、文字に一致しないか、最大 2 文字に一致するようにしました。

于 2012-05-25T20:09:43.603 に答える
0

与えられたすべての答えはまだ失敗リストの 1-a と一致するので、ここに私の追加があります:

\b([0-9]+)([a-z]{0,2})(?!-)\b

テスト済み: 1 12 123456 123a 1234ab 123456789ab a ab a1 ab12 1abc 123abc 1-a 1_a

一致: 1 12 123456 123a 1234ab 123456789ab

于 2012-05-25T20:30:08.620 に答える