• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号
您的位置:首页 > 程序设计 >编程问答 > python正则表达式中反斜杠的用法

python正则表达式中反斜杠的用法

作者:佚名 字体:[增加 减小] 来源:互联网 时间:2017-06-07

佚名通过本文主要向大家介绍了python 正则表达式,python正则表达式教程,python正则表达式语法,python3 正则表达式,python中正则表达式等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com
问题:python 正则表达式中反斜杠的用法
描述:

In [3]: b =r'123242343.52353543\43534234'

In [4]: b
Out[4]: '123242343.52353543\\43534234'

In [5]: import re

In [6]: p = re.compile('[0-9\.]+')

In [7]: p.findall(b)
Out[7]: ['123242343.52353543', '43534234']

In [8]: p = re.compile('[0-9\\.]+')

In [9]: p.findall(b)
Out[9]: ['123242343.52353543', '43534234']

In [10]: p = re.compile('[0-9\\\.]+')

In [11]: p.findall(b)
Out[11]: ['123242343.52353543\\43534234']

In [12]: p = re.compile('[\\0-9\.]+')

In [13]: p.findall(b)
Out[13]: ['123242343.52353543', '43534234']

In [14]: p = re.compile('[\\\0-9.]+')

In [15]: p.findall(b)
Out[15]: ['123242343.52353543', '43534234']

In [16]: p = re.compile('[\\0-9.]+')

In [17]: p.findall(b)
Out[17]: ['123242343.52353543', '43534234']

In [18]: p = re.compile('[\0-9.]+')

In [19]: p.findall(b)
Out[19]: ['123242343.52353543', '43534234']

In [20]: p = re.compile('[\\\\0-9.]+')

In [21]: p.findall(b)
Out[21]: ['123242343.52353543\\43534234']

In [24]: p = re.compile('[0-9.\\]+')
error: unexpected end of regular expression
In [24]: p = re.compile('[0-9.\]+')
error: unexpected end of regular expression
In [26]: p = re.compile('[0-9.\\\]+')

In [27]: p = re.compile('[0-9.\\\\]+')

发现反斜杠在方括号内使用,'\\' 并不能代表反斜杠, b 只在第十行的 '\\\' 和 第二十行的 ‘\\\\’正则表达中被正确提取反斜杠,另外,‘\’ 和 ‘\\’ 貌似不可以用于[] 最后,而‘\\\’ 和 ‘\\\\’ 却可以。请问,为什么第十行的‘\\\’可以提取出 b 的反斜杠,而第十四行中[]开头的‘\\\’却不可以,只有写成‘\\\\’才可以? 反斜杠在[]中的书写需要遵守什么规律?


解决方案1:

首先,python的字符串会将\和其后面的一个字符合并为一个字符,通常用于表示一些不可见字符,如\n代表回车,\0代表ascii码为0的字符,而\\只代表\。这个过程称为 转义 (escaping)。如果用有r前缀的原生字符串(raw string)则不会转义,如r'\\'代表两个\。如果\后的字符不在转义字符表中,则不做转义。

参见: https://docs.python.org/2.0/ref/strings.html

对照一下转义字符表,把你所写的字符串都“翻译”一下,你应该就明白发生了什么。


分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • 正则表达式Python正则表达式问题,?i什么意思
  • python正则前瞻后瞻无法匹配到正确的内容
  • python正则表达式,怎么不能搜索所有的符合项。
  • (python)有关正则表达式的问题
  • python这个正则表达式中符号表示什么意思?
  • (python)关于正则显示金额的问题
  • 正则表达式python正则表达式难题。
  • 正则表达式(python)为什么正则表达式抓取不到数据?
  • 正则表达式替换Python正则替换所有标签内的引号
  • 正则表达式python正则表达式?=匹配的问题

相关文章

  • 2017-06-07 误删了七牛上的文件,有哪些恢复手段?
  • 2017-06-07 HTTP上传返回invalidputpolicyencoding错误
  • 2017-06-07 scalabuilderpattern泛型函数调用
  • 2017-06-07 单纯的开发环境来说Docker和Vagrant该如何选择?
  • 2017-06-07 php中用redis存储session,为什么第一次打印出来的session为空?
  • 2017-06-07 无法生成视频缩略图。
  • 2017-06-07 python爬数据,得到一个列表,但怎样去掉里面的span标签呢?
  • 2017-06-07 一个treecache缓存集群的问题
  • 2017-06-07 七牛云存储能支持上传后的文件,针对某些分辨率去显示图片吗?
  • 2017-06-07 phantomjsphantomjs切换IP

文章分类

  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号

最近更新的内容

    • 正则匹配不包含某字符串的字符串
    • python(flask)管理git裸库,类似gitlab
    • 错误:javaxnamingNameNotFoundException:StatfulEjbBeannotbound
    • (flask)页面链接跳转问题
    • C#七牛的断点续传进度如何缩小粒度,4Mb是否太大了?
    • Windows平台,VS2010编译器下,怎样使用C++调用python脚本中的函数
    • 浏览器是以什么方式将密码存储在云端的?
    • Python的多线程是伪命题吗?
    • Python的GUI编程需要什么知识?
    • mac下的svn工具cornerstone不显示timeline也不能回滚到以前的版本这是为什么呢

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有