在编写处理字符串的程序或网页时,常常会有查找符合某些复杂规则的字符串的须要。正则表达式就是用于描述这些规则的工具。换句话说,正则表达式就是记录文本规则的代码。合理使用正则表达式确实会为程序员省去不少字符处理的工做,高速而有效。javascript
正则表达式的语法与使用规范能够参考http://deerchao.net/tutorials/regex/regex.htmjava
这里说说用js和java程序处理字符串的一点问题:程序员
<script type="text/javascript"> function check(){ var str = $('#str').val(); str = str.replace(/[\r\n]/g,"");//去掉回车换行 str = str.replace(/[ ]/g,""); //去掉空格 str = str.replace(/\\|\//g,"");//去斜杠 str = str.replace(/"([^"]*)"/g, "“$1”"); //将半角引号转换全角双引号 str = str.replace(/"([^']*)"/g, "‘$1’");//将半角引号转换全角单引号 alert(str); } </script>
用占位符的方法可处理成对出现的字符,方便快捷。对比用java程序处理相似的字符串能够这样写:正则表达式
package com.test.processstr; public class ProcessString { public static void main(String[] args) { String source = "\"We [are]\" \'family here\',come \\ {on} girl and boy! $$ \n"; String dest = ""; if (source!=null) { dest = source.replaceAll("\\s*|\t|\r|\n|\\\\|,",""); dest = dest.replaceAll(",",","); System.out.println("去掉换行空格斜杠符号后的字符串:" + dest); dest = dest.replaceAll("\"(.*?)\"", "“$1”"); System.out.println("替换英文双引号符号后的字符串:" + dest); dest = dest.replaceAll("\'(.*?)\'", "‘$1’"); System.out.println("替换英文单引号符号后的字符串:" + dest); dest = dest.replaceAll("\\[(.*?)\\]", "【$1】"); System.out.println("替换中括号符号后的字符串:" + dest); dest = dest.replaceAll("\\{(.*?)\\}", "{$1}"); System.out.print("替换中括号符号后的字符串:" + dest); } } }
也能够使用util包下的Pattern Matcher 类来实现java的正则表达式处理。工具