Pattern.compile(正規表現)メソッドに入れる正規表現を作成する必要があります。 私のregexは整数(数字の先頭に0はない)、数字とchar(A-Za-z)のシーケンスを許さなければなりませんが、問題は3番目のポイントです:文字で始まり、 '' 'は、バックスラッシュが1つもない場合を除き、文字のバックスラッシュ(およびバックスラッシュがない限り)を避けなければなりません。Pattern.compile()メソッドの正規表現
しかし、私は2番目のポイント
public static void main(String[] args) {
if (args.length == 0)
throw new IllegalArgumentException();
Matcher matcher = Pattern.compile("([a-zA-Z]+[0-9a-zA-Z_]*)|"
+ "(0(?![0-9])|([1-9]+)([0-9]*))|" //"?!" è una asserzione : " se la condizione tra parentesi è vera non considerare lo zero
+ "([\"]{1}(([\\\\][^\"\\][\\\"])*)[\"]{1})"
+ "|(\\s+)").matcher(args[0]);// \s = [ \t\n\x0B\f\r]
System.out.println("Input: " + args[0]); //println va a capo dopo la stampa
while (matcher.lookingAt()) {
System.out.print("Lexeme '" + matcher.group() + "'"); //non va a capo dopo la stampa
System.out.println(" group " + ExampleLexer.getGroup(matcher));
matcher.region(matcher.end(), matcher.regionEnd());
}
//attenzione: matcher.hitEnd() restituisce true se il matcher arriva in fondo
//all'input anche se l'ultimo match non ha avuto successo, quindi funziona solo
//per espressioni regolari "semplici"
if (matcher.regionStart() == matcher.regionEnd())
System.out.println("All lexems succesfully matched");
else {
System.err.print("Unmatched lexem ");
matcher.usePattern(Pattern.compile(".*"));
matcher.lookingAt();
System.err.println(matcher.group());
}
}
2番目のポイントは「_、一連の数字_」ですか? '\ d +'? [mcve]を入力してください。各要件にいくつかの列挙を使用すると読みやすくなります。もちろん、あなたには多くの誤りがありますが、どちらが言及されているかは言及していません。これが複雑な場合は、少なくともこれは例(入力/出力) – AxelH
質問していただきありがとうございます:)私の問題は3点目です!このようなすべての文字列: "\\ hello \" "\ helloになる必要があります"しかし、私はそれを行う方法を知らない!私はバックスラッシュを意味し、 "muestは禁止されていますが、\\と\"は同意されなければなりません。 – Shinon
エラーは次のとおりです:スレッドmain "java.util.regex.PatternSyntaxException:Unmatched closing")のインデックス89付近の例外 ([0-9] *))|(a-zA-Z)+ [0-9a-zA- ( "" {1}([(\(?= \ | \ "))] [^ \"]))*)["] {1})|(\ s +) ^ \t at java.util。 regex.Pattern.error(不明なソース) \t(java.util.regex.Pattern.compile) \t(java.util.regex.Pattern)(不明なソース)私は正規表現を読むことはありませんlab05_12_04.ExampleLexer.main(ExampleLexer.java:18)で \t –
Shinon