java - 将正则表达式与 "<"等符号一起使用

标签 java regex

我有一个字符串<Thread> 'data we need' </Thread>我想提取 'data we need' .

我一直在使用这个,但没有任何结果:

Pattern patternThread = Pattern.compile("<Thread(.*?)/Thread>");
Matcher matcherThread = patternThread.matcher(a);
if (matcherThread.find()) {
    System.out.println("Thread Oke");
    System.out.println(matcherThread.group(1));
}

我知道问题是 "<" and the "/" .

那么,有什么建议吗? 我已经尝试过“//”和“/” 难道是我的jdk太旧了? 7.2 我已经在oracle上搜索了解决方案,但仍然没有解决这个问题

最佳答案

您可以使用此正则表达式 <Thread>(.*?)</Thread> :

Pattern patternThread = Pattern.compile("<Thread>(.*?)</Thread>");
Matcher matcherThread = patternThread.matcher("<Thread> 'data we need' </Thread>");
while (matcherThread.find()) {
    System.out.println(matcherThread.group(1));
}

输出

 'data we need' 
  1. 您可以使用while如果您可以获得多个结果
  2. 您必须使用matcherThread.group(1)而不是matcherThread.group()因为最后返回 <Thread> 'data we need' </Thread>

您可以找到演示here ,您可以找到代码示例 here

关于java - 将正则表达式与 "<"等符号一起使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43604818/

相关文章:

java - 响应消息 : java. sql.SQLException: Fail to convert to internal representation: jmeter

java - 强制 jUnit 测试覆盖整个界面

regex - vbscript 中检查字符串是否包含多个单词/短语列表中的单词/短语的最快方法

java - 正则表达式,仅包含小写或大写字符或两者,用于用户名验证

java - Play框架的模板引擎中是否有 "instanceof"功能?

java - Java中输出顺序Hashset的依据是什么

正则表达式只匹配 Notepad++ 中字符串的第一次出现

java - 使用正则表达式从字符串中提取特定数据

javascript - 检查字符串是否包含组内的字符

java - Java 中的管道或交换输入/输出流