正则表达式(菜鸟教程)


普通字符

'+ 前面的字符出现一次或多次

eg:run + b 等价于 runnb,runnnn…b do(es) + 等价于 does,doeseses…

'* 前面的字符0,1多次

? 前面的字符0,1次

. 换行符\n之外的任何单字符

| 两项之间的一个选择

\ 转义符号 eg:* 就是匹配字符* 而不是特殊字符

特殊字符

[ABC]:匹配ABC(顺序无关)

^:取反

[A-Z],[0-9],[a-z] 分别匹配三个区间

\w:匹配字母,数字,下划线 等价于[A-Za-z0-9_]

\d:匹配数字

\n:匹配换行符

\r:匹配回车符

\s:匹配空白字符

\S:匹配非空白字符

{n}:非负整数,匹配确定的n次 eg:o{2} 匹配 food 中的两个o

{n,}:至少匹配n次 o{1,} 等价于o+ o{0,}等价于o*

{n,m}:匹配最少n最多m eg:[0-9]{1,2} 取0-99

[1-9][0-9 匹配一个正整数 前面为了去0,后面*是0.1多次

$:匹配输入字符串的结尾位置

\b:匹配一个单词边界,即字和空格间的位置 eg:\bCha 或者 /ter\b/ 前面是从单词的开始处查找匹配项,后面是结尾处查找匹配项

\B:非单词边界匹配 eg:\Bapt 能匹配Chapter 中的字符串 apt,但不匹配 aptitude 中的字符串 apt 应该是前者的三个字母出现在非单词边界处

():标记子表达式的开始和结束位置

eg: 123456runoob123runoob456 ([1-9])([a-z]+):匹配一个数字开头,多个字母结尾,此时匹配出来的是6runoob和3runoob
在这里插入图片描述

exp1(?=exp2):查找 exp2 前面的 exp1。 eg:runoob(?=[\d+]) 匹配出来的就是例子中123456后面的runoob
在这里插入图片描述

(?<=exp2)exp1:查找 exp2 后面的 exp1。eg:(?<=[\d+]runoob) 匹配出来的就是456前面的runnoob
在这里插入图片描述

修饰符(标记)

var str=“Google runoob taobao runoob”;

var n1=str.match(/runoob/); // 查找第一次匹配项

var n2=str.match(/runoob/g); // 查找所有匹配项

var n3=str.match(/runoob/gi); // 查找所有匹配项且不区分大小写

var n4=str.match(/runoob/gm); // 多行匹配

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
JavaScript正则表达式和Java正则表达式在语法上有一些差异,但是它们的基本概念和用法是相似的。下面是将JavaScript正则表达式转换为Java正则表达式的一些常见规则: 1. 语法差异: - JavaScript正则表达式使用斜杠(/)作为定界符,而Java正则表达式使用双引号(")作为定界符。 - JavaScript正则表达式中的特殊字符需要进行转义,而Java正则表达式中的特殊字符不需要转义。 2. 字符类: - JavaScript正则表达式中的字符类使用方括号([])表示,而Java正则表达式中使用方括号([])或者Unicode转义(\p{...})表示。 - JavaScript正则表达式中的字符类可以使用连字符(-)表示范围,而Java正则表达式中需要使用Unicode转义(\uXXXX)表示范围。 3. 量词: - JavaScript正则表达式中的量词使用花括号({})表示,而Java正则表达式中使用花括号({})或者问号(?)表示。 - JavaScript正则表达式中的贪婪量词默认是贪婪模式,而Java正则表达式中的贪婪量词需要在后面添加问号(?)来表示非贪婪模式。 4. 边界匹配: - JavaScript正则表达式中的边界匹配使用插入符号(^)和美元符号($)表示,而Java正则表达式中使用\A和\Z表示。 5. 其他差异: - JavaScript正则表达式中的捕获组使用圆括号(())表示,而Java正则表达式中使用圆括号(())或者方括号([])表示。 - JavaScript正则表达式中的反向引用使用反斜杠加数字(\1、\2等)表示,而Java正则表达式中使用美元符号加数字($1、$2等)表示。 以上是一些常见的JavaScript正则表达式转换为Java正则表达式的规则。具体转换时,还需要根据具体的正则表达式进行适当的调整。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值