我正在嘗試使用方法useDelimiter("&|=|~|^");
將java掃描程序與以下一組分隔符& = ~ ^
(與號,等號,代字號,插入符號)一起使用。java掃描儀忽略^ Caret
除了^
之外,所有的分隔符都可以正常工作,爲什麼會這樣呢?
我看不到掃描儀文檔中的原因。
我正在嘗試使用方法useDelimiter("&|=|~|^");
將java掃描程序與以下一組分隔符& = ~ ^
(與號,等號,代字號,插入符號)一起使用。java掃描儀忽略^ Caret
除了^
之外,所有的分隔符都可以正常工作,爲什麼會這樣呢?
我看不到掃描儀文檔中的原因。
您需要轉義^
,如下所示:useDelimiter("&|=|~|\\^")
。這是因爲^
是正則表達式中的元字符,並且String
參數useDelimiter()
最終被編譯爲正則表達式Pattern
。
同樣地,你可以寫這樣的分隔符,在這種情況下沒有必要逃避^
:useDelimiter("[&=~^]")
我已經試過這個方法和它沒有工作......但是我認爲這是因爲^緊接着是=。我相信如果兩個分隔符相互跟隨,那麼使用單個分隔符的列表不起作用...或者也許兩個相鄰的分隔符最終在標記中變爲空值 – Hector 2012-04-10 03:50:28
在字符類([''''在正則表達式中),如果在開始處找到'^'則表示否定。例如,這個'[^ abc]'表示:匹配任何東西_但是a或b或c。如果脫字符號出現在字符類中的任何其他位置,則將其解釋爲正常字符 – 2012-04-10 03:54:25
^
是在正則表達式中的保留符號,所以你要逃避它:\\^
。
「squiggle」被稱爲「tilde」(〜)http://en.wikipedia.org/wiki/Tilde – 2012-04-08 21:49:03
我以爲是這樣...只是沒有想到我可以拼寫正確拼寫雖然 – Hector 2012-04-10 03:47:35