だから私はこの問題を抱えています。 POLLに続いて、10個のAs、Ds、またはMs(合意、不一致、多分)の組み合わせがあります。答えが「いいえ」の場合、それに続く理由が必要です。正規表現の場合は
FFキャプチャ:Mは
//大文字小文字を区別しないと答え、
- A、Dを
私はこの正規表現に来た
POLL\s+([ADM]{10})\s+(yes|no\s+([a-z. ]+))
文字列は次のとおりです。
POLL admaaadddm no no comment
出力は次のようになります。
combination --> admaaadddm yes or no --> no no comment //this should be fix, it must capture no only reason --> no comment
私のコード:
String message = "POLL admaaadddm no no comment"; Pattern pattern = Pattern.compile("POLL\\s+([ADM]{10})\\s+(yes|no\\s+([a-z. ]+))" ,Pattern.CASE_INSENSITIVE); Matcher m = pattern.matcher(message); try { if (m.matches()) { String combination = m.group(1); String yesno = m.group(2); String reason = m.group(3); System.out.println(combination); System.out.println(yesno); System.out.println(reason); } } catch (NullPointerException e) { }
コードはどこですか? – Mat
正規表現で時間を無駄にしないでください。ポーリングラインを読み込んで解析するだけです。 – DwB
私はそうする必要があります。これはregex.LOLを使った割り当てです – tddiaz