是什么导致我的Java`.matches()`regex返回False?
我正在尝试查找字符串中出现的是什么导致我的Java`.matches()`regex返回False?,java,regex,Java,Regex,我正在尝试查找字符串中出现的{字符 给定字符串stringa=“{”,为什么a.matches(“\\{”)返回False 我正在尝试按照此处的指南进行操作:。看起来简单匹配部分应该满足我的需要。但它的行为似乎不符合预期。我似乎无法检测到选项卡或{字符 我尝试了.matches(“\\s*\\{”)之类的方法来解释卷发之前的制表符,但仍然失败;即使尝试只匹配制表符(这是字符串中的第一个字符),也会使用表达式.matches(\\s”)报告false 我在这里遗漏了什么?这样试试 String s
{
字符
给定字符串stringa=“{”
,为什么a.matches(“\\{”)
返回False
我正在尝试按照此处的指南进行操作:。看起来简单匹配部分应该满足我的需要。但它的行为似乎不符合预期。我似乎无法检测到选项卡
或{
字符
我尝试了.matches(“\\s*\\{”)
之类的方法来解释卷发之前的制表符,但仍然失败;即使尝试只匹配制表符(这是字符串中的第一个字符),也会使用表达式.matches(\\s”)
报告false
我在这里遗漏了什么?这样试试
String s = "{1,23,abc{{ { {abc";
Pattern pat = Pattern.compile("[^(a-zA-Z0-9)\\s]*?\\{[^(a-zA-Z0-9)\\s]*?");
Matcher mat = pat.matcher(s);
String datu = new String();
while(mat.find()){
System.out.println(mat.group());
}
试试
a.matches(“*\{”)
(或者a.matches(“(\\t)*\{”)
来处理制表符和空格)检查整个字符串是否与给定的模式匹配。如果您的字符串的前导空格未在正则表达式中说明,则它将不匹配。编辑:第二个字符串实际上应该是a.matches(“[\\t]*\\{”)
。下面是一个可运行的示例-@aroth”检查整个字符串是否与给定的模式匹配对。这就解释了失败的原因!你的例子非常好用。我希望我能把你的评论勾选为正确的。谢谢你的帮助!