ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

正则表达式基础

2020-03-10 13:54:52  阅读:226  来源: 互联网

标签:字符 匹配 正则表达式 基础 re str print findall


正则表达式是在字符串中查找你需要的字符串,类似c++的find函数,但是他在不同的语言中有着相似(几乎不变的)语法,具体可以看:

https://www.runoob.com/regexp/regexp-metachar.html

下面仅记录一下最最基础的

(有bf还会用这?当初为什么要先看这个???)

(回来再看这句话,真香)

正则表达式首先要import re

查找的函数有:

re.findall(规则,str)

检索到字符串结束而不是和search一样看到一个满足的就终止掉

re.search(规则,str)

输出第一个满足规则的对应位置 下标从0开始,返回的是前闭后开的区间

+ :重复匹配前一个字符一次 或多次

* :重复匹配前一个字符零次 或多次

? :重复匹配前一个字符零次或一次

. :可以代表任意字符,(一般不特殊声明不能代表\n)

查url用 .*?即可

\n回车\r换行(回车不代表换行),\t制表(tab)等代表他们原本的意思

\b 代表匹配单词结尾 空格,和字符串结尾(\0?)

\d 对应匹配的是0~9的数字

比如 x\d 则是匹配第一个x后面是数字的字符串

而x\d+是匹配所以x后面是数字的字符串

import re
#r类似以只读模式打开
reg1=r'c\d'
reg2=r'c\d+'
reg3=r'c\d*'
reg4=r'c\d?'
reg5=r'd\b'
str='ad qcdac134c13'
print(re.findall(reg1,str))
    ['c1', 'c1']
print(re.findall(reg2,str))
    ['c134', 'c13']
print(re.findall(reg3,str))
    ['c', 'c134', 'c13']
print(re.search(reg4,str))
<re.Match object; span=(3, 4), match='c'>
print(re.findall(reg5,str))#匹配不到第二个d(后面没有空格)
    ['d']

 

[]:是匹配里面字符的任意一个 如果里面的ascii连续可以用-代替比如[a-z,0-8]

\s : 匹配任何空白字符 相当于 [\t \n \r \f \v \x20] \x20是空格

\w :匹配包括下划线在内的单词字符 相当于[a-zA-Z0-9_] 中文居然也算!

^ : if出现在[]的第一个则代表[]里的在其后面的取反相当于(类似 c++的!)else代表匹配前一个字符字符串开头的位置(用search的话

$ :匹配前一个字符在字符串结尾的位置 通常用search

[\u4e00-\u9fa5] 匹配一个中文字符 若要匹配句字则

可用([\u4e00-\u9fa5]+)

 

reg1=r'd\b'
reg2=r'\w+'
reg3=r'^q'
reg4=r'[\u4e00-\u9fa5]+'
str='ad qc dac134c13 撒发顺丰'
print(re.findall(reg1,str))
['d']

print(re.findall(reg2,str))
['ad', 'qc', 'dac134c13','撒发顺丰']

print(re.findall(reg3,str))
[]
print(re.findall(reg4,str))
['撒发顺丰']

 

():可以看成整体通常与其他符号搭配使用

标签:字符,匹配,正则表达式,基础,re,str,print,findall
来源: https://www.cnblogs.com/cherrypill/p/12455234.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有