ASP中用正则表达式替换字符找字符

正则表达式应用非常广泛,特别是在文本处理方面,可以把符合条件的字符替换成别的字符,也可以从文本中找出所有符合条件的字符。

最基本的中英文搜索分词,即把用户输入的搜索关键字分割成中文词和英文词,比如用户输入了:NOKIA诺基亚5700,分割后就是3个词NOKIA、诺基亚、5700,这样更容易找到用户需要的信息。

ASP实现代码举例:

keyword=“NOKIA诺基亚5700” '要分割的关键字
partWord="" ’'保存分割出来的每个关键字
set regEx = new RegExp
regEx.Pattern= "[\w]+" '取出英文,并将全部匹配结果存到数组中去
regEx.IgnoreCase = True ‘忽略大小写
regEx.Global = True '全局匹配
Set Matches=regEx.Execute(keyword)
For Each Matche In Matches '所有匹配结果集
partWord=partWord&Matche&"|" '分词
next
set regEx=nothing
set regEx = new RegExp
regEx.Pattern= "[^\w ]+" '取非(英文+空格),这里W后面有个空格
regEx.IgnoreCase = True
regEx.Global = True
Set Matches=regEx.Execute(keyword)
For Each Matche In Matches
partWord=partWord&Matche&"|"
next

处理完后,partWord中所有的关键字用"|"隔开,通过split(partWord,"|")就可以访问每个关键字了。

替换字符时,只有把Execute改成Replace即可。

举例如下:

fString=“NOKIA诺基亚5700” '要替换的字符串文本
Set bjReg=new RegExp
ObjReg.Pattern = "[a-zA-Z0-9]{1,30}" ‘找到大小字母和数字,至少匹配1位,最多匹配30位
fString = ObjReg.Replace(fString,"") '这里把找到的字符替换成空,需要替换成别的,只要在""中输入想替换成的字符就行
set bjReg=nothing
上面例子中没有加入忽略大小写判断,也没加入全局匹配,有需要的在正则表达式下面加上就行。

Asp常用正则表达式:

((\d{11})|^((\d{7,8})|(\d{4}|\d{3})-(\d{7,8})|(\d{4}|\d{3})-(\d{7,8})-(\d{4}|\d{3}|\d{2}|\d{1})|(\d{7,8})-(\d{4}|\d{3}|\d{2}|\d{1}))$)

匹配格式:
11位手机号码
3-4位区号,7-8位直播号码,1-4位分机号
如:12345678901、1234-12345678-1234

"^\d+$"  //非负整数(正整数 + 0)
"^[0-9]*[1-9][0-9]*$"  //正整数
"^((-\d+)|(0+))$"  //非正整数(负整数 + 0)
"^-[0-9]*[1-9][0-9]*$"  //负整数
"^-?\d+$"    //整数
"^\d+(\.\d+)?$"  //非负浮点数(正浮点数 + 0)
"^(([0-9]+\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\.[0-9]+)|([0-9]*[1-9][0-9]*))$"  //正浮点数
"^((-\d+(\.\d+)?)|(0+(\.0+)?))$"  //非正浮点数(负浮点数 + 0)
"^(-(([0-9]+\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\.[0-9]+)|([0-9]*[1-9][0-9]*)))$"  //负浮点数
"^(-?\d+)(\.\d+)?$"  //浮点数
"^[A-Za-z]+$"  //由26个英文字母组成的字符串
"^[A-Z]+$"  //由26个英文字母的大写组成的字符串
"^[a-z]+$"  //由26个英文字母的小写组成的字符串
"^[A-Za-z0-9]+$"  //由数字和26个英文字母组成的字符串
"^\w+$"  //由数字、26个英文字母或者下划线组成的字符串
"^[\w-]+(\.[\w-]+)*@[\w-]+(\.[\w-]+)+$"    //email地址
"^[a-zA-z]+://(\w+(-\w+)*)(\.(\w+(-\w+)*))*(\?\S*)?$"  //url
/^13\d{9}$/gi手机号正则表达式
public static bool IsValidMobileNo(string MobileNo)
{
const string regPattern = @"^(130|131|132|133|134|135|136|137|138|139)\d{8}$";
return Regex.IsMatch(MobileNo, regPattern);
}
正则表达式--验证手机号码:13[0-9]{9}
实现手机号前带86或是+86的情况:^((\+86)|(86))?(13)\d{9}$
电话号码与手机号码同时验证:(^(\d{3,4}-)?\d{7,8})$|(13[0-9]{9})
提取信息中的网络链接:(h|H)(r|R)(e|E)(f|F) *= *('|")?(\w|\\|\/|\.)+('|"| *|>)?
提取信息中的邮件地址:\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*
提取信息中的图片链接:(s|S)(r|R)(c|C) *= *('|")?(\w|\\|\/|\.)+('|"| *|>)?
提取信息中的IP地址:(\d+)\.(\d+)\.(\d+)\.(\d+)
提取信息中的中国手机号码:(86)*0*13\d{9}
提取信息中的中国固定电话号码:(\(\d{3,4}\)|\d{3,4}-|\s)?\d{8}
提取信息中的中国电话号码(包括移动和固定电话):(\(\d{3,4}\)|\d{3,4}-|\s)?\d{7,14}
提取信息中的中国邮政编码:[1-9]{1}(\d+){5}
提取信息中的中国身份证号码:\d{18}|\d{15}
提取信息中的整数:\d+
提取信息中的浮点数(即小数):(-?\d*)\.?\d+
提取信息中的任何数字 :(-?\d*)(\.\d+)?
提取信息中的中文字符串:[\u4e00-\u9fa5]*
提取信息中的双字节字符串 (汉字):[^\x00-\xff]*



上一篇: 诺基亚C5-03如何修改wifi密码
下一篇: Asp正则表达式提取字符
文章来自: 本站原创
引用通告: 查看所有引用 | 我要引用此文章
Tags: asp 正则表达式
相关日志:
评论: 0 | 引用: 0 | 查看次数: 2153
发表评论
昵 称:
密 码: 游客发言不需要密码.
邮 箱: 邮件地址支持Gravatar头像,邮箱地址不会公开.
网 址: 输入网址便于回访.
内 容:
验证码:
选 项:
虽然发表评论不用注册,但是为了保护您的发言权,建议您注册帐号.
字数限制 1000 字 | UBB代码 开启 | [img]标签 关闭

 广告位

↑返回顶部↑