正则表达式Pattern.MULTILINE问题

时间:2011-03-20 10:04:51

标签: java regex

我不明白为什么我使用:

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();

,它返回false。

感谢。

1 个答案:

答案 0 :(得分:2)

你说getText()返回的字符串与字符串文字相同,但它们不应该相同!

\\\n是特殊的转义序列,仅在字符串文字中解释(分别为\和换行符)。如果要从文本字段解释字符串文字后读取相同的字符串,则应将其输入为^\d

dfg
5t

分别。您需要一个mulitline文本字段来输入后一个值(Swing中的JTextArea)。