好吧我有一個字符串,我解析,我需要使用toUpperCase()該字符串。之後,我使用Java RegExp。問題在於,由於某種原因,Java的String toUpperCase()正在修改空格,而我的RegExp將無法工作。Java toUpperCase()和正則表達式問題
有沒有辦法告訴toUpperCase()忽略空白?或者也許它有可能在RegExp中處理?
下面是我用來解決這個問題的代碼。如果我取消註釋下面的toUpperCase()行,我的RegExp將不起作用!
String regExp = "([t][o][k][e][n][\\s]*[=][\\s]*)";
String content = "The token ='testing'" ;
//content = content.toUpperCase(); //uncomment this and RegExp will break!!!
Pattern pattern = Pattern.compile(regExp);
Matcher matcher = pattern.matcher(content);
if(matcher.find()){
int startIndex= matcher.start(1);
int endIndex = matcher.end(1);
String posStartExpression = content.substring(startIndex,endIndex);
System.out.println(posStartExpression);
}
你說的「將打破」指的是在世界什麼?它不會*改變空格,因爲當大寫時沒有改變的空白代碼點。你爲什麼在血腥的地方使用方括號?你知道casefolding vs casemapping嗎?當你需要另一個時,你似乎正在使用一個。您是否首先在命令行中以交互式語言對此進行了測試?如果不是,爲什麼不呢?你說的錯誤信息是什麼?你真的想做什麼? – tchrist