1

英数字の後にスラッシュ、そして再び英数字を入力として受け取る正規表現が必要です。このためにJavaで正規表現を書くにはどうすればよいですか?

この例は次のとおりです。

adc9/fer4

次のように正規表現を使用してみました。

String s = abc9/ferg5;
String pattern="^[a-zA-Z0-9_]+/[a-zA-z0-9_]*$";
if(s.matches(pattern))
{
    return true;
}

しかし、スラッシュの後にチェックせずに abc9/ 形式のすべての文字列を受け入れるという問題があります。

4

5 に答える 5

1

参照: http://download.oracle.com/javase/1.4.2/docs/api/java/util/regex/Pattern.html

Pattern p = Pattern.compile("[a-z\\d]+/[a-z\\d]+", CASE_INSENSITIVE);

お役に立てれば。

于 2011-03-11T21:09:35.960 に答える
0

あなたが望むと思うことを実行する最短のJava正規表現は"^\\w+/\\w+$".

于 2011-03-14T19:34:08.180 に答える
0

これは、\w意味をエミュレートするために必要な Java コードです。

public final static String
    identifier_chars = "\\pL"          /* all Letters      */
                     + "\\pM"          /* all Marks        */
                     + "\\p{Nd}"       /* Decimal Number   */
                     + "\\p{Nl}"       /* Letter Number    */
                     + "\\p{Pc}"       /* Connector Punctuation           */
                     + "["             /*    or else chars which are both */
                     +     "\\p{InEnclosedAlphanumerics}"
                     +   "&&"          /*    and also      */
                     +     "\\p{So}"   /* Other Symbol     */
                     + "]";

public final static String
identifier_charclass     = "["  + identifier_chars + "]";       /* \w */

public final static String
not_identifier_charclass = "[^" + identifier_chars + "]";       /* \W */

1 つの文字が必要な場所、およびidentifier_charclass1 つの文字が必要な場所で、パターンで使用します。標準に完全には達していませんが、それらに対する Java の壊れた定義よりもはるかに優れています。\wnot_identifier_charclass\W

于 2011-03-11T21:17:01.540 に答える
0

私は使うだろう:

String raw = "adc9/fer4";
String part1 = raw.replaceAll("([a-zA-Z0-9]+)/[a-zA-Z0-9]+","$1");
String part2 = raw.replaceAll("[a-zA-Z0-9]+/([a-zA-Z0-9]+)","$1");

[a-zA-Z0-9] は任意の英数字文字列を許可します + は 1 つ以上 ([a-zA-Z0-9]+) はグループの値を保存することを意味します $1 は最初のグループを呼び出すことを意味します

于 2011-03-11T21:06:27.727 に答える
0

アスタリスクはプラスでなければなりません。正規表現では、アスタリスクは 0 以上を意味します。プラスは1以上を意味します。スラッシュの前の部分の後にプラスを使用しました。スラッシュの後の部分にもプラスを使用する必要があります。

于 2011-03-11T22:08:43.770 に答える