^在正则表达式中有两个作用,一是表达以什么开头,二是表达对什么取反。有时候经常傻傻的分不清楚,接下来给大家详细介绍该怎么用这个^
准备一个python文件test.py,借用re.search函数举例说明

# coding=utf-8
import re s = ['abc-123-cba', #'abc'在最前面
'123-abc-aabbcc-123', #'abc'在中间
'a-2-3-b-1', #最前面是'a'
'b-x-c-a-1', #最前面是'b'
'z-a-1', #'a'在中间
'x-y-z', #字符串没有任何'a','b','c'
'cbaabc' #字符串全是'a','b','c'组成
] st = r'abc'
for i in s:
m = re.search(st, i)
if m:
print(i)

1.当st = r'abc'时,执行python文件得到的结果如下    
abc-123-cba
123-abc-aabbcc-123
cbaabc
字符串中有'abc'就匹配成功

2.当st = r'[abc]'时,执行python文件得到的结果如下    
abc-123-cba
123-abc-aabbcc-123
a-2-3-b-1
b-x-c-a-1
z-a-1
cbaabc
字符串中只要有'a'或'b'或'c',就匹配出来

3.当st = r'^abc'时,执行python文件得到的结果如下    
abc-123-cba
字符串中只有'abc'开头的才匹配出来

4.当st = '^[abc]'时,执行python文件得到的结果如下 
abc-123-cba
a-2-3-b-1
b-x-c-a-1
cbaabc
字符串由'a'或'b'或'c'开头的都匹配出来了

5.当st = '[^abc]'时,执行python文件得到的结果如下 
abc-123-cba
123-abc-aabbcc-123
a-2-3-b-1
b-x-c-a-1
z-a-1
x-y-z
字符串只要有除'a'和'b'和'c'的字符就都匹配出来了,这跟第三种情况是相反的   
   
总结:
'abc'表示字符串中有'abc'就匹配成功
'[abc]'表示字符串中有'a'或'b'或'c'就匹配成功
'^abc'表示字符串由'abc'开头就匹配成功
'^[abc]'表示字符串由'a'或'b'或'c'开头的,
'[^abc]'表示匹配'a','b','c'之外的字符。如果一个字符串是由'a','b','c'组合起来的,那就是假

当^表示取反的时候,只有一种情况,就是在中括号里面,而且是每一个字符之外的。所以千万不要把'[^abc]'看成是对'abc'字符串的取反。
如果想使用对'abc'字符串取反,则只能更改代码
st = r'abc' 
for i in s:
    m = re.search(st, i)
    if not m

列举常用的取反:
'[^a-z]' 所有小写字母之外的字符
'[^a-zA-Z]' 所有大写和小写字母之外的字符
'[^0-9]' 所有数字之外的字符

如果文章有错误,还望您指正。

Python - ^在正则表达式中的作用的更多相关文章

  1. 【Python】正则表达式中使用变量

    我们有时想把变量放进正则表达式中来匹配想要的结果.Python中使用 re.compile(r''+变量+''),其中正则表达式中的“变量”应为字符串形式. import re regex_test_ ...

  2. python装饰器中@wraps作用--修复被装饰后的函数名等属性的改变

    Python装饰器(decorator)在实现的时候,被装饰后的函数其实已经是另外一个函数了(函数名等函数属性会发生改变),为了不影响,Python的functools包中提供了一个叫wraps的de ...

  3. 【python】正则表达式中的转义问题

    encode('string-escape') 解决 比如想匹配'\x0e\x0a'中的'\x'后的内容,这里希望把'\x0e'作为一个字符串,那么其中的\应该被转义. 未加转义的正则: p = '( ...

  4. 每天一点python:正则表达式中的findall方法

    举例:使用findall获取所有匹配的正则表达式文本,然后逐一替换. #! python3 """ A regular expression example: find ...

  5. Python正则表达式中的re.S的作用

    在Python的正则表达式中,有一个参数为re.S.它表示“.”(不包含外侧双引号,下同)的作用扩展到整个字符串,包括“\n”.看如下代码: import re a = '''asdfhellopas ...

  6. Python正则表达式中的re.S,re.M,re.I的作用

    正则表达式可以包含一些可选标志修饰符来控制匹配的模式.修饰符被指定为一个可选的标志.多个标志可以通过按位 OR(|) 它们来指定.如 re.I | re.M 被设置成 I 和 M 标志: 修饰符 描述 ...

  7. Python正则表达式中的re.S

    title: Python正则表达式中的re.S date: 2014-12-21 09:55:54 categories: [Python] tags: [正则表达式,python] --- 在Py ...

  8. 正则表达式中的.*?和python中re.S参数的详解

    本章的内容主要是为讲解在正则表达式中常用的.*?和re.S! 在正则表达式中有贪婪匹配和最小匹配:如下为贪婪匹配(.*) import re match = re.search(r'PY.*', 'P ...

  9. Python3 re模块正则表达式中的re.S

    在Python的正则表达式中,有一个参数为re.S.它表示"."(不包含外侧双引号,下同)的作用扩展到整个字符串,包括"\n".看如下代码: import re ...

随机推荐

  1. web攻击与防御技术-平台搭建与暴力破解

    平台搭建是首先安装xampp并把pikachu的压缩文件解压在HTdocs下 然后 点击后显示 安装成功 首先随便输入一些东西 然后用burpsuite抓包 对username和password字段进 ...

  2. element form 对单个字段做验证

    this.$refs[formName].validateField('phone', phoneError => { //验证手机号码是否正确 if (!phoneError) { conso ...

  3. 《java编程思想(第四版)》第一二章学习笔记

    目录 一.Introduction 1.抽象过程 2.面向对象语言(包括Java)的五个基本特性 3.每个对象都提供服务 4.public.private.protected三者的区别 5.Java的 ...

  4. java之instanceof操作符

    a intanceof A:判断a是否是类A的的一个实例,返回值为boolean public class Person extends Object{} public class Student e ...

  5. php中文乱码原因和维修方法

    一.首先是PHP网页的编码 1.如果欲使用gb2312编码,那么php要输出头:header(“Content-Type: text/html; charset=gb2312”),静态页面添加,所有文 ...

  6. intelj idea中除了Find Usage外的另一种查找级联调用的方法

    一.方法 平时都是使用find usage来找一个方法的引用的地方,但是只能查看一级,今天偶然发现个查看多级的办法: 在源码编辑界面:

  7. Python 从入门到进阶之路(四)

    之前的文章我们简单介绍了一下 Python 的几种变量类型,本篇文章我们来看一下 Python 中的函数. 函数是组织好的,可重复使用的,用来实现单一,或相关联功能的代码段. 函数能提高应用的模块性, ...

  8. Java生鲜电商平台-订单模块状态机架构设计

    Java生鲜电商平台-订单模块状态机架构设计 说明:在Java生鲜电商平台中订单的状态流转业务        我们知道 一个订单会有很多种状态:临时单.已下单.待支付.待收货.待评价.已完成,退货中等 ...

  9. 松软科技web课堂:SQLServer之MID() 函数

    MID() 函数 MID 函数用于从文本字段中提取字符. SQL MID() 语法 SELECT MID(column_name,start[,length]) FROM table_name 参数 ...

  10. canvas实现七巧板图案和粒子时钟

      canvas实现七巧板 <canvas id="canvas" width="800" height="800"></ ...