全部产品
存储与CDN 数据库 域名与网站(万网) 应用服务 数加·人工智能 数加·大数据基础服务 互联网中间件 视频服务 开发者工具 解决方案 物联网 钉钉智能硬件
码栈

正则表达式

更新时间:2017-09-01 22:11:46

正则表达式可以认为是数据筛选器,就是从一段文本中找到你想要的信息。

例如,要在一段文本中搜索匹配手机号,如13312345678,如何从中匹配到手机号码?

码栈提供了正则表达式测试仪帮助检测正则表达式是否正确,在编码开发模式下,您可以通过正则表达式按钮,打开测试仪进行验证。

正则表达式测试仪

正则表达式的组成

一个正则表达式有3部分组成:

  • 匹配内容:筛选内容可以是具体的字符例如“手机号”,也可以是匹配符,例如\d表示数字;
  • 匹配数量:筛选数量就是你希望筛选内容出现的几次,默认1次;
  • 分组提取:分组提取就是从符合筛选内容中提取具体的值,分组是可选的。

例如:通过正则表达式获得指定的文本,当位置=0的时候返回值为1或者0代表是否符合此正则表达式。

  1. Local $url="www.taobao.com"
  2. Local $middle=J_EXP($url,"\w+",1)
  3. J_MsgBox($middle)

匹配符

匹配符号 匹配内容 样例
\d 匹配数字
  • 正则表达式:\d1\d3
  • 匹配值样例:0123
\D 匹配非数字
  • 正则表达式:\DSKMNC你好啊 +S
  • 匹配值样例:QSKMNC你好啊 +S
\w 匹配数字、字母以及下滑线
  • 正则表达式:\w\w\wd_\d\d\d\d5
  • 匹配值样例:Abcd_12345
\W 匹配非数字、字母以及下划线
  • 正则表达式:你好+\W\W=大家好
  • 匹配值样例:你好+我好=大家好
\s 匹配空格、换行符等空白文本
  • 正则表达式:\s\s\s
  • 匹配值:3个空格
\S 匹配非空格、换行符
  • 正则表达式:你好+\S\S\S大家好12_ab
  • 匹配值样例:你好+我好=大家好12_ab
. 匹配除换行符之外所有的数据
  • 正则表达式:N..e
  • 匹配值样例:Nice
\. 匹配符号.,在正则表达式中,所有“有含义的”英文字符如果想要匹配,需要加上反斜杠
  • 正则表达式:\.\,
  • 匹配值样例:.,
[ ] 匹配中括号中的数据,放在括号中表示非的意思
  • 正则表达式:[Aa]pple或者[^\d]pple
  • 匹配值样例:Apple
( ) 用于抓取目标数据
  • 正则表达式:退款金额:(\d+.\d\d)
  • 匹配值样例:退款金额:100.00

匹配数量

匹配符号 匹配内容 样例
{n} 匹配指定次数,n为具体数字
  • 正则表达式:\d{11}
  • 匹配值样例:17091313333
{n,m} 匹配指定n到m范围内的次数,n、m为具体数字或空值
  • 样例1
    • 正则表达式:\d{1,5}
    • 匹配值样例:匹配1~5个数字
  • 样例2
    • 正则表达式:\w{3,}
    • 匹配值样例:匹配至少3个数字
* 尽可能多的匹配,允许为空 -
+ 尽可能多的匹配,至少要有一个满足
  • 正则表达式:\s+
  • 匹配值样例:匹配至少1个空格、换行符等空白文本
? 有可能出现,也有可能不出现
  • 样例1
    • 正则表达式:App?G?le
    • 匹配值样例:Apple
  • 样例2
    • 正则表达式:.*?
    • 匹配值样例:尽可能少的匹配,可以为空
  • 样例3
    • 正则表达式:.+?
    • 匹配值样例:尽可能少的匹配,不能为空
本文导读目录