Regexp Pattern.MULTILINE проблема - PullRequest
1 голос
/ 20 марта 2011

Я не понимаю, почему, если я использую:

boolean found = Pattern.compile("^\\d", Pattern.MULTILINE).matcher("dfg\n5t").find();

, он возвращает true.

Но если я использую:

// taken from two input field with the same above values!!!
String rx = txt_rx.getText();
String ch = txt_ch.getText();

boolean found = Pattern.compile(rx, Pattern.MULTILINE).matcher(ch).find();

, он возвращаетложь.

Спасибо.

1 Ответ

2 голосов
/ 20 марта 2011

Вы говорите, что строки, возвращаемые getText(), совпадают со строковыми литералами, но они не должны совпадать!

\\ и \n - это специальные escape-последовательности, которые интерпретируются (как \ и символ новой строки соответственно) только в строковых литералах. Если вы хотите прочитать те же строки, что и после интерпретации строковых литералов из текстовых полей, вы должны ввести их как ^\d и

dfg
5t

соответственно. Вам нужно многострочное текстовое поле для ввода последнего значения (JTextArea в Swing).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...