不错的免费网站建设,网站打开慢什么原因,网站优化公司电话,网页设计作品欣赏网站一直很奇怪为什么Java和Tcl的正则表达式之间有这样的一个差异#xff0c;即Tcl正则表达式中的转义符\在Java正则表达式中一律会需要写成\\。比如#xff0c;Tcl的正则表达式为 ^Case\_name\s*\\s*(.*)对应的Java正则表达式则需要写成 ^Case\\_name\\s*\\\s…一直很奇怪为什么Java和Tcl的正则表达式之间有这样的一个差异即Tcl正则表达式中的转义符\在Java正则表达式中一律会需要写成\\。比如Tcl的正则表达式为 ^Case\_name\s*\\s*(.*)对应的Java正则表达式则需要写成 ^Case\\_name\\s*\\\s*(.*)而如果需要去匹配字符串中的\,在Tcl中需要写成\\而在Java中需要写成\\\\,一个例外可能是要匹配字符串中的(双引号)在Java中只需要写成\。因为想要将正则表达式作为一个String的参量传递给Java某个字符串的matches函数发现正确的写法恰恰就是需要将该参量的字符串形式写成如Tcl的正则表达式。或许这就是为什么Java要用双反斜杠而不是像Tcl中那样用单反斜杠的原因一个例子程序是String mp ;mp通过某配置文件来赋值而不是直接写成mpxxxxx在配置文件中需要写成 ^Case\_name\s*\\s*(.*)等效于 直接赋值方式的 mp ^Case\\_name\\s*\\\\s*(.*)if (strLine.matches(mp)) {Patternp Pattern.compile(mp);Matchermatch p.matcher(strLine);match.find();Stringvalue match.group(1);...}