我试图从使用'java.util.regex.Pattern'的文本文件中捕获赋值操作。我一直非常沮丧地尝试修正我的正则表达式,以便真正识别我正在寻找的内容。我尽可能简化了问题,并发现了一个拾取空白的问题。Java正则表达式空白不被识别
This post proved helpful,并揭示了处理空白字符集问题轻,但不回答为什么下面的问题是不工作:
Pattern p = Pattern.compile("adfa =");
Scanner sc = new Scanner("adfa =");
if(sc.hasNext(p))
{
String s = sc.next(p);
System.out.println(">" + s + "<");
}
else
System.out.println(":(");
如果我试试这个:
Pattern p = Pattern.compile("\\w+ *=");
接下来的字符串是:
"adfa="
但是不是:
"adfa ="
只需通过进行以下更改:
Pattern p = Pattern.compile("adfa=");
Scanner sc = new Scanner("adfa=");
所有作品意!任何人都可以阐明发生了什么问题?
编辑:只要读取默认确实是任何空格。谢谢!不知道我是如何设法不读的,并假定分隔符是'\ n'或EOF。 – Daeden
@Daeden ..尝试打印'sc.delimiter()'的值。你会得到'\ p {javaWhitespace} +'。我希望能够说清楚。 –
@Daeden。不客气:) –