正则表达式
来源:互联网 发布:淘宝商家被骗了怎么办 编辑:程序博客网 时间:2024/05/22 17:32
1.编程中如何区分两种模式
*:任意多个
+:一个到多个
?:0或一个
默认是贪婪模式;
在量词后面直接加上一个问号?就是非贪婪模式。
量词:{m,n}:m到n个*:任意多个
+:一个到多个
?:0或一个
2、正则表达式默认用的是贪婪模式
贪婪模式针对的就是.的次数,就是尽可能的让.的数量最多,正则表达式里要满足的顺序就是从左到右
"suMengs$s##s123"
.*(s.*?s).* 匹配结果 s##s 原因是第一个.*采用贪婪模式,尽可能的让.匹配的字越多越好,最多就是从左往右一直匹配到倒数第二个s
.*(s.*s).* 匹配结果 s##s 原因是先保证第一个.*最长,再考虑后面的.*
.*?(s.*s).* 匹配结果 suMengs$s##s 原因是先保证第一个.*最短,再考虑后面的.*最长
.*?(s.*?s).* 匹配结果 suMengs
3、()括号就是选取的意思,也有括号原本的分割的功能
代码:
line = "booby123" ; regex_str = "((bobby|boobby)123)" match_obj = re.match(regex_str, line) if (match_obj): print (match_obj.group(1))输出:
match_obj.group(1) --> booby123
6、提取数据match_obj.group(2) --> booby4、 [ ] 1、符合中括号里任意一个字符 2、符合范围内的数 3、[^1]取反,即不为1的字符 4、[]内的符号没有特殊含义[.]指的是点代码:
line = "18730271234" ; regex_str = "(1[34578][0-9]{9})" match_obj = re.match(regex_str, line) if (match_obj): print (match_obj.group(1))5、\s 空格 \S 除了空格以外的任何字符
\w [A-Za-z0-9_]
.包含所有字符
例1:"1873027h哈哈大学""([\u4E00-\u9FA5]+大学) 输出为空".*([\u4E00-\u9FA5]+大学 输出为哈大学".*?([\u4E00-\u9FA5]+大学)"输出为哈哈大学例2:"%%%出生于2001年"".*(\d+)年"
输出 1".*?(\d+)年" 输出 2001
阅读全文
0 0
- 【正则表达式】正则表达式
- 正则表达式
- 正则表达式
- 正则表达式
- 正则表达式
- 正则表达式
- 正则表达式
- 正则表达式
- 正则表达式
- 正则表达式
- 正则表达式
- 正则表达式
- 正则表达式
- 正则表达式
- 正则表达式
- 正则表达式
- 正则表达式
- 正则表达式
- Collections 对List 进行排序
- java 单例模式
- backup
- 对象转化为json
- Android Timer 定时器 与handler的配合
- 正则表达式
- IO流——自定义字节流的缓冲区
- UE4 天空盒制作
- 最长上升子序列 最长公共子序列
- 剑指offer-丑数
- tcpdump
- Java四大特征(抽象、封装、继承、多态)
- 安卓实现按返回键回到桌面以及再一次按返回键退出应用
- 高数基础4-导数与微分