正则写法

正则写法

正则表达式: 正则的作用是用来匹配字符串中是否有符合正则表达式中规则的字符串,当然当我们匹配后就可以对字符串进行检索、替换等一系列操作。正则表达式让操作字符串变的更加简单。

在不同的语言对正则表达式的支持
java

// 要验证的字符串
String str = “hello”;
// 正则表达式规则
String regEx = “e”;
// 编译正则表达式
Pattern pattern = Pattern.compile(regEx);
// 忽略大小写的写法
// Pattern pat = Pattern.compile(regEx, Pattern.CASE_INSENSITIVE);
Matcher matcher = pattern.matcher(str);
// 查找字符串中是否有匹配正则表达式的字符/字符串
boolean rs = matcher.find();
System.out.println(rs);
javascript

// 要验证的字符串对象
var str = ‘hello’;
//获取正则表达式对象
var re = new RegExp(‘e’);
//忽略大小写的写法
//var re = new RegExp(‘e’,‘i’);
//查找字符串中是否有匹配正则表达式的字符/字符串
var result = re.test(str);
alert(result);
上面的两个示例都是判断字符串hello中是否包含了字符e。正则表达式支持大部分的计算机语言。需要注意的是在不同的语言中获取正则表达式对象的方式不同。而正则表达式的匹配规则是相同的。在下面的文章中以javascript语法介绍正则表达式。

在 javascript 示例中 re.test() 方法一执行就会去检查字符串 str 中是否有 e 这个字母,当然在上面例子中是有这个结果为 true。使用 new RegExp() 实例化对象是所传入的第一个参数就是正则表达式要匹配的规则,new RegExp() 还有第二个参数规则的匹配模式所接收的参数:i 大小写敏感、g 全局匹配,这里需要说明的是正刚表达式匹配规则默认情况下只要匹配到第一个匹配项后就会停止而如果设置了参数g后将匹配字符中所有的、m 执行多个匹配。正则对象的匹配模式可以同时设置多个 new RegExp(‘e’,‘ig’)。

js中正则表达式还有一种简写的写法var patt=/匹配规则/匹配模式i|g|m;
var re = /e/ig;
正则的行首与行尾
var patt=/^匹配规则$/

在写正则规则的时候需要注意,如果使用/匹配规则/的写法时,该规则会检索字符中是否包含该规则所匹配的字符串,简单点说只要有符合该规则的字符就能通过验证。而/^匹配规则$/则需要字符串中所有字符都必须符合该规则。

js中字符串对正则的支持
常用字符中操作:

search() 字符搜索
split() 分割字符串操作
replace() 替换匹配到的字符串
match() 匹配一个或多个规则
在上面的字符串操作支持正则表达式作为参数的。
正则对象中方法
test() 检索给定字符的值是否和正则表达式匹配返回布尔值。
exec() 检索字符串中指定的值。返回找到的值,并确定其位置。
正则表达语法:
元字符:具有特殊含义的字符。大部分元字符前使用转义字符\。常用的元字符如:

  • . 查找单个字符,除了换行和行结束符。
  • \w 查找单词字符。
  • \W 查找非单词字符。
  • \d 查找数字。
  • \D 查找非数字字符。
  • \s 查找空白字符。
  • \S 查找非空白字符。
  • \b 匹配单词边界。
  • \B 匹配非单词边界。
  • \0 查找 NULL 字符。
  • \n 查找换行符。
  • \f 查找换页符。
  • \r 查找回车符。
  • \t 查找制表符。
  • \v 查找垂直制表符。
  • \xxx 查找以八进制数 xxx 规定的字符。
  • \xdd 查找以十六进制数 dd 规定的字符。
  • \uxxxx 查找以十六进制数 xxxx 规定的 Unicode 字符。
    量词:用来描述匹配字符的数量。
    n+ 匹配任何包含至少一个 n 的字符串。
    n* 匹配任何包含零个或多个 n 的字符串。
    n? 匹配任何包含零个或一个 n 的字符串。
    n{X} 匹配包含 X 个 n 的序列的字符串。
    n{X,} X 是一个正整数。前面的模式 n 连续出现至少 X 次时匹配。
    n{X,Y} X 和 Y 为正整数。前面的模式 n 连续出现至少 X 次,至多 Y 次时匹配。
    n{X,} 匹配包含至少 X 个 n 的序列的字符串。
    n$ 匹配任何结尾为 n 的字符串。
    ^n 匹配任何开头为 n 的字符串。
    ?=n 匹配任何其后紧接指定字符串 n 的字符串。
    ?!n 匹配任何其后没有紧接指定字符串 n 的字符串。
    方括号:描述匹配范围内字符。
    [abc] 查找方括号之间的任何字符。
    [^abc] 查找任何不在方括号之间的字符。
    [0-9] 查找任何从 0 至 9 的数字。
    [a-z] 查找任何从小写 a 到小写 z 的字符。
    [A-Z] 查找任何从大写 A 到大写 Z 的字符。
    [A-z] 查找任何从大写 A 到小写 z 的字符。
    [adgk] 查找给定集合内的任何字符。
    [^adgk] 查找给定集合外的任何字符。
    (red|blue|green) 查找任何指定的选项。
    正则表达式在线测试工具
    正则表达式在线测试工具

正则表达式示例:
从一段文本中选出可用的QQ号
var str = “qq号大全,984033324,1452245123-22q2222ddddd,456123”;
// 匹配所有数字
var re1 = /\d+/g;
// 匹配是否是QQ号
var re2 = /1\d{4,10}$/g;
// 挑出所有的数字
var arrays = str.match(re1);
// 检验数字是否是QQ号
for (var i = 0; i < arrays.length; i++) {
if (null != arrays[i].match(re2)) {
alert(arrays[i] + “是QQ号”);
} else {
alert(arrays[i] + “不是QQ号”);
}

}

验证邮箱
var re = /^\w+@[a-z0-9]+.[a-z]{2,4}KaTeX parse error: Expected group after '^' at position 127: … "; var re = /^̲\s+|\s+/g;
alert("(" + str.replace(re,’’) + “)”);
验证是否包含中文
var str=‘java中国’;
var re = /[\u4e00-\u9fa5]/;
alert(re.test(str));
验证字符串中是否包含指定的单词
var str = ‘welcome to,shengzhen!’;
var word = ‘to’;
var re = new RegExp("\b" + word + “\b”,‘g’);
alert(re.test(str));


  1. 1-9 ↩︎

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值