java 配置写成表达式_Java的正则表达式之小结
一直很奇怪為什么Java和Tcl的正則表達式之間有這樣的一個差異,即Tcl正則表達式中的轉義符\在Java正則表達式中一律會需要寫成\\。
比如,Tcl的正則表達式為 "^Case\_name\s*\=\s*(.*)"
對應的Java正則表達式則需要寫成 "^Case\\_name\\s*\\=\s*(.*)"
而如果需要去匹配字符串中的\,在Tcl中需要寫成"\\",而在Java中需要寫成"\\\\",
一個例外可能是要匹配字符串中的"(雙引號),在Java中只需要寫成"\""。
因為想要將正則表達式作為一個String的參量
傳遞給Java某個字符串的matches函數,發現正確的寫法,恰恰就是需要將該參量的字符串形式寫成如Tcl的正則表達式?;蛟S這就是為什么Java要用雙反斜杠而不是像Tcl中那樣用單反斜杠的原因?
一個例子程序是:
String mp = "";
mp通過某配置文件來賦值而不是直接寫成mp="xxxxx"
在配置文件中需要寫成 ^Case\_name\s*\=\s*(.*)
等效于 直接賦值方式的 mp = "^Case\\_name\\s*\\=\\s*(.*)"
if (strLine.matches(mp)) {
Pattern
p = Pattern.compile(mp);
Matcher
match = p.matcher(strLine);
match.find();
String
value = match.group(1);
...
}
總結
以上是生活随笔為你收集整理的java 配置写成表达式_Java的正则表达式之小结的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python matplotlib 散点
- 下一篇: 误删了计算机桌面回收站,我电脑回收站里的