Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/314.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java模式问题_Java_Regex_Pattern Matching - Fatal编程技术网

Java模式问题

Java模式问题,java,regex,pattern-matching,Java,Regex,Pattern Matching,我从数据库中得到一个包含表单字符串的文本 CO<sub>2</sub> CO2 为了认识到这一点,我编写了以下代码 String footText = "... some text containing CO<sub>2</sub>"; String co2HTML = "CO<sub>2</sub>"; Pattern pat = Pattern.compile(co2HTML); Matcher mat = pat.

我从数据库中得到一个包含表单字符串的文本

CO<sub>2</sub>
CO2
为了认识到这一点,我编写了以下代码

String footText = "... some text containing CO<sub>2</sub>";
String co2HTML = "CO<sub>2</sub>";
Pattern pat = Pattern.compile(co2HTML);
Matcher mat = pat.matcher(footText);

final boolean hasCO2 = mat.matches();
String footText=“…一些含有二氧化碳的文本”;
字符串co2HTML=“CO2”;
Pattern pat=Pattern.compile(co2HTML);
Matcher mat=pat.Matcher(足部文本);
最终布尔值hasCO2=mat.matches();
问题是hasCO2始终为false,尽管inout文本具有该子字符串。 赫特怎么了

谢谢

您应该使用
find()
而不是
matches()
,因为后者尝试根据模式匹配整个字符串,而不是执行搜索

从:

  • matches
    方法尝试根据模式匹配整个输入序列
  • lookingAt
    方法尝试将输入序列与模式匹配,从开头开始
  • find
    方法扫描输入序列,寻找与模式匹配的下一个子序列
此外,所讨论的模式实际上并不需要正则表达式;您可以使用来执行搜索

您应该使用
find()
而不是
matches()
,因为后者尝试根据模式匹配整个字符串,而不是执行搜索

从:

  • matches
    方法尝试根据模式匹配整个输入序列
  • lookingAt
    方法尝试将输入序列与模式匹配,从开头开始
  • find
    方法扫描输入序列,寻找与模式匹配的下一个子序列

此外,所讨论的模式实际上并不需要正则表达式;您可以使用来执行搜索

String.contains(CharSequence)
有什么问题吗?事实上,代码更复杂。我已经发布了问题的核心,而不是全部代码。我确实需要图案。无论如何,谢谢你的评论。
String.contains(CharSequence)
有什么问题吗?事实上,代码更复杂。我已经发布了问题的核心,而不是全部代码。我确实需要图案。无论如何,谢谢你的评论。