比较全面的C 、Java、JavaScript中的正则表达式详解(3)

/** * 给一个字符串添加链接 * @param text 要添加链接的字符串 * @param url 链接的URL * @return 添加链接后的字符串 */ public static String AddHref(String text, String url) { return "<a href=https://www.jb51.net/article/\"" + url + "https://www.jb51.net/article/\">" + text + "</a>"; } /** * 查找文本中的URL字符串,并将其添加链接 * @param text 需要查找的文本 * @return 添加链接后的文本 */ public static String AddLinkToText(String text) { Pattern pattern = Pattern.compile("http://([\\w-]+.)+[\\w-]+(/[\\w-./?%&=#]*)?"); Matcher matcher = pattern.matcher(text); StringBuffer sb = new StringBuffer(); //定义一个字符缓冲区,用于保存新的文本 while (matcher.find()) { String matchedSubStr = matcher.group(); //提取出查找到的子串 matcher.appendReplacement(sb, AddHref(matchedSubStr, matchedSubStr)); //将找到的子串添加链接后塞到字符缓冲区内 } matcher.appendTail(sb); return sb.toString(); }

JavaScript中的正则表达式

JavaScript 中的正则表达式是通过 RegExp 对象实现的。 RegExp 对象的创建有三种方式:

精简方式:

/pattern/attributes

new 方式:

new RegExp(pattern, attributes);

函数调用的方式:

RegExp(pattern, attributes);

参数pattern可以是一个模式串,也可以是一个RegExp对象,如果pattern本身就是RegExp的对象,则attributes参数将不起作用(新创建的对象的必发与pattern对象相同。),需要省略,如果不省略会抛TypeError 异常。

参数attributes有三种属性"g"、"i" 和 "m",分别用于指定全局匹配、区分大小写的匹配和多行匹配。

RegExp主要有三个方法:

compile

 

编译正则表达式,可用于改变和重新编译正则表达式。

 

exec

 

检索字符串中指定的值。返回找到的值,并确定其位置。

 

test

 

检索字符串中是否有指定的值。返回  true  或  false 

 

1.验证字符串是否为数字

<script type="text/javascript"> function isNumber(text) { var pattern = new RegExp("^\\d*$"); return pattern.test(text); } var value1 = "1234"; document.write(value1 + " is Numed:" + isNumber(value1)); </script>

2. 邮箱格式:

<script type="text/javascript"> function isEmail(text) { var reg = /^([\w-.])+@([\w-])+((\.[\w-]{2,3}){1,2})$/; return reg.test(text); } var value2 = "Zhang.San@163.com"; document.write(value2 + " is Email:" + isEmail(value2)); </script>

3.将一个文本中的所有邮箱地址和在文本中的位置打印到页面

<script type="text/javascript"> function PrintEmail(text) { //匹配的模式 var reg = RegExp("([\\w-.])+@([\\w-])+((\.[\\w-]{2,3}){1,2})", "g"); var result; //保存结果 while ((result = reg.exec(text)) != null) { document.write(result[0] + "<br/>" + result.index); document.write("<br/><br/>"); } } var text = "张三 Zhang.San@163.com; 李四 Li_si@126.com;王五 WangWu@gmail.com.cn" ; PrintEmail(text); </script>

应用场景

数据验证:

例如,可以检查输入的字符串,看其是否为电话号码格式,或是否为邮箱格式。 这在网页的表单输入中经常用到。

查找子串:

可以查找文档内( 或一个字符串内 ) 符合指定模式的子串。

替换文本:

可以使用正则表达式来识别文档中的特定内容,完全删除该部分内容或者用其他字符串来替换它。

使用工具:

如 Word 、 NotePad++ 、 EditPlus 等文字编辑器中的查找功能都支持正则表达式,用正则表达式你就可以实现更加多样化的查找。还有像 VS 、 CodeBlock 、 Eclipse 、 Intellij Idea 等开发工具的 IDE 的查找替换功能也都支持正则表达式,用它你可以修改变量名,调整代码格式,统计代码行数等。

常用正则表达式总结

常用的正则表达式已经有很多人做了总结了,在网上能够找到非常多,我就没有再写的必要了。下面贴出我觉得还不错的一个总结。

此部分内容为转载,来自:

一、校验数字的表达式

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wjpdjy.html