我正在尝试JTextArea
使用正则表达式拆分文本以拆分字符串\n
然而,这不起作用,我也试过\r\n|\r|n
和许多其他正则表达式的组合.码:
public void insertUpdate(DocumentEvent e) {
String split[], docStr = null;
Document textAreaDoc = (Document)e.getDocument();
try {
docStr = textAreaDoc.getText(textAreaDoc.getStartPosition().getOffset(), textAreaDoc.getEndPosition().getOffset());
} catch (BadLocationException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
split = docStr.split("\\n");
}
Run Code Online (Sandbox Code Playgroud) 参考下面的问题 - String.replaceAll带有双反斜杠的单反斜杠
我写了一个测试程序,我发现在两种情况下结果都是正确的,无论我是否逃避反斜杠.这可能是因为 - \t是可识别的Java String转义序列.(尝试\ s,它会抱怨). - \t在正则表达式中作为文字选项卡.我有点不确定原因.
有没有关于在Java中转义正则表达式的一般准则.我认为使用两个反斜杠是正确的方法.
我仍然想知道你的意见.
public class TestDeleteMe {
public static void main(String args[]) {
System.out.println(System.currentTimeMillis());
String str1 = "a b"; //tab between a and b
//pattern - a and b with any number of spaces or tabs between
System.out.println("matches = " + str1.matches("^a[ \\t]*b$"));
System.out.println("matches = " + str1.matches("^a[ \t]*b$"));
}
}
Run Code Online (Sandbox Code Playgroud)