正则表达式的基本语法规则

一、正则表达式的概念

        正则表达式是对字符串操作的一种逻辑公式,就是用事先定义好的一些特定字符、及这些特定字符的组合,组成一个“规则字符串”,这个“规则字符串”用来表达对字符串的一种过滤逻辑。

        正则表达式的大致匹配过程:
1.依次拿出表达式和文本中的字符比较,
2.如果每一个字符都能匹配,则匹配成功;一旦有匹配不成功的字符则匹配失败。
3.如果表达式中有量词或边界,这个过程会稍微有一些不同。

二、正则表达式的匹配规则

        Python中正则表达式的一些匹配规则:


三、正则表达式相关注解

1、数量词的贪婪模式与非贪婪模式
        正则表达式通常用于在文本中查找匹配的字符串。Python里数量词默认是贪婪的(在少数语言里也可能是默认非贪婪),总是尝试匹配尽可能多的字符;非贪婪的则相反,总是尝试匹配尽可能少的字符。例如:正则表达式”ab*”如果用于查找”abbbc”,将找到”abbb”。而如果使用非贪婪的数量词”ab*?”,将找到”a”。
    注:我们一般使用非贪婪模式来提取。

2、反斜杠问题
        与大多数编程语言相同,正则表达式里使用”\”作为转义字符,这就可能造成反斜杠困扰。假如你需要匹配文本中的字符”\”,那么使用编程语言表示的正则表达式里将需要4个反斜杠”\\\\”:前两个和后两个分别用于在编程语言里转义成反斜杠,转换成两个反斜杠后再在正则表达式里转义成一个反斜杠。
        Python里的原生字符串很好地解决了这个问题,这个例子中的正则表达式可以使用r”\\”表示。同样,匹配一个数字的”\\d”可以写成r”\d”。有了原生字符串,妈妈也不用担心是不是漏写了反斜杠,写出来的表达式也更直观勒。


正则表达式30分钟教程、常用正则表达式:http://deerchao.net/


  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
正则表达式是一种用于匹配和操作字符串的强大工具。它使用特定的语法规则来描述字符串的模式。以下是正则表达式的一些基本语法规则: 1. 字符匹配:正则表达式可以直接匹配指定的字符。例如,正则表达式`a`可以匹配字符串中的字符`a`。 2. 字符类:使用方括号`[]`来定义一个字符类,表示匹配其中的任意一个字符。例如,正则表达式`[abc]`可以匹配字符串中的字符`a`、`b`或`c`。 3. 范围类:在字符类中可以使用连字符`-`来表示一个范围。例如,正则表达式`[a-z]`可以匹配任意小写字母。 4. 反向字符类:在字符类的开头使用`^`表示反向字符类,表示匹配除了字符类中的字符之外的任意字符。例如,正则表达式`[^0-9]`可以匹配任意非数字字符。 5. 元字符:正则表达式中有一些特殊的字符,称为元字符,具有特殊的含义。例如,`.`表示匹配任意字符,`\d`表示匹配任意数字,`\s`表示匹配任意空白字符。 6. 重复次数:使用`*`表示匹配前面的元素零次或多次,使用`+`表示匹配前面的元素一次或多次,使用`?`表示匹配前面的元素零次或一次。例如,正则表达式`a*`可以匹配零个或多个字符`a`。 7. 分组:使用圆括号`()`来创建一个分组,可以对分组内的元素进行重复次数的控制。例如,正则表达式`(ab)+`可以匹配一个或多个连续的字符串`ab`。 8. 反向引用:使用`\数字`来引用前面的分组,表示匹配与该分组相同的内容。例如,正则表达式`(ab)\1`可以匹配两个连续的字符串`abab`。 9. 边界匹配:使用`^`表示匹配字符串的开头,使用`$`表示匹配字符串的结尾。例如,正则表达式`^\d+$`可以匹配一个或多个数字组成的字符串。 10. 贪婪匹配和非贪婪匹配:默认情况下,正则表达式是贪婪匹配的,即尽可能多地匹配字符。可以在重复次数后面加上`?`来表示非贪婪匹配。例如,正则表达式`a+?`可以匹配尽可能少的字符`a`。 这些只是正则表达式的一些基本语法规则正则表达式还有更多的高级用法和语法规则。希望以上内容对您有所帮助。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值