Java RegEx获取标记之间的字符串

时间:2013-09-22 14:34:13

标签: java regex

我需要一个regexp来将所有字符串放在像这样的标签中: < - >这个标签里面包括任何字符,数字,空格,回车等。 我有这个正则表达式:

Pattern.compile("<-(.+?)->") 

但它没有检测到特殊序列:\ r \ n等。

3 个答案:

答案 0 :(得分:2)

<强> but it not detect a special sequence as: \r \n etc

除非您使用Pattern.DOTALL标记,否则它不会与换行符匹配:

Pattern p = Pattern.compile("<-(.+?)->", Pattern.DOTALL);

或者您可以使用(?s)标志:

Pattern p = Pattern.compile("(?s)<-(.+?)->");

Pattern.DOTALL使点匹配换行符,因此.+?也会匹配\r\n等。

答案 1 :(得分:1)

您可以尝试以下操作:

<-([\\S\\s]+?)->

答案 2 :(得分:0)

.字符与换行符不匹配。这就是你遇到这个问题的原因。