Abilita la corrispondenza della sequenza di caratteri costituita dal carattere di controllo regex [chiuso]

-1

Java Pattern fornisce i flag che consentono di abbinare i caratteri di controllo delle espressioni regolari. Il passaggio di Pattern.LITERAL o 16 come secondo argomento corrisponderà a qualsiasi carattere Unicode, ma non se si utilizza una parola associata all'espressione regolare Unicode.

Pattern p = Pattern.compile("$", Pattern.LITERAL); //I could also escape \$
Matcher m = p.matcher("$ $ $ $$");
int i = 0;
while(m.find()){
i++;
}
System.out.println(i + " $ were matched"); //---> 4 $ were matched

//Using word boundary will not match any $
Pattern p1 = Pattern.compile("\b$\b", Pattern.LITERAL); //
Matcher m1 = p.matcher("$ $ $ $$");
int i = 0;
while(m.find()){
i++;
}
System.out.println(i + " $ were matched"); //---> 0 $ were matched

Come puoi vedere, voglio corrispondere a $ distinti, ma non riesco a farlo.

    
posta Nexima360 01.04.2016 - 01:58
fonte

1 risposta

-1

As you can see, I want to match distinct $, But I am unable to do that.

Risposta piuttosto semplice: stai cercando di far corrispondere i confini delle parole, ma la tua stringa "$ $ $ $$" non contiene \ w (carattere-parola) e quindi nessun limite di parola. Quindi, nessuna corrispondenza.

    
risposta data 01.04.2016 - 12:46
fonte

Leggi altre domande sui tag