两个字符串之间的模式在java中(Pattern between two string in java)
我有一个长字符串,形式如下:
如何在<DETAIL>和</TEXT>之间提取数据,请注意它不是一个xml文件。 每个结局后都会有一个新行。 我尝试了以下方法:
Pattern pattern = Pattern.compile("<DETAIL>(.*?)</TEXT>"); Matcher matcher = pattern.matcher(string); while (matcher.find()) { System.out.println(matcher.group(1)); }它给了我空值,任何人都可以帮忙吗? 提前致谢。
I have a long string which is of the form:
How can i extract the data between <DETAIL> and </TEXT>, note that its NOT an xml file. There is a new line after every ending. I tried the following :
Pattern pattern = Pattern.compile("<DETAIL>(.*?)</TEXT>"); Matcher matcher = pattern.matcher(string); while (matcher.find()) { System.out.println(matcher.group(1)); }It gives me null values, any one can help ? Thanks in advance.
最满意答案
默认情况下. 与换行符不匹配。
使用s标志( DOTALL )来制作. 匹配到换行符。
Pattern pattern = Pattern.compile("(?s)<DETAIL>(.*?)</TEXT>");要么
Pattern pattern = Pattern.compile("<DETAIL>(.*?)</TEXT>", Pattern.DOTALL);By default, . does not match newline.
Use s flag (DOTALL) to make . match to newline.
Pattern pattern = Pattern.compile("(?s)<DETAIL>(.*?)</TEXT>");or
Pattern pattern = Pattern.compile("<DETAIL>(.*?)</TEXT>", Pattern.DOTALL);更多推荐
发布评论