我試圖從使用'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。不客氣:) –