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)
有什么问题吗?事实上,代码更复杂。我已经发布了问题的核心,而不是全部代码。我确实需要图案。无论如何,谢谢你的评论。