python 贪婪和非贪婪模式
2016-06-06 17:31
465 查看
这样的正则表达式:
r'\*(.+)\*' 如果想要匹配*something*这样的一个串按道理说是没问题的
但是如果文本是*this* is *something*
那么我们的正则表达式就会采取贪婪模式匹配第一个* 和 最后一个*
而中间的 两个*就当作是第一个分组里面的内容了
要想采取非贪婪模式 就只需在其后面加一个问号r'\*(.+?)\*'
r'\*(.+)\*' 如果想要匹配*something*这样的一个串按道理说是没问题的
但是如果文本是*this* is *something*
那么我们的正则表达式就会采取贪婪模式匹配第一个* 和 最后一个*
而中间的 两个*就当作是第一个分组里面的内容了
要想采取非贪婪模式 就只需在其后面加一个问号r'\*(.+?)\*'
s1='hello,*something!* pattern1=re.compile('\*(.+)\*') print re.sub(pattern1,r'<em>\1</em>',s1)
##输出结果hello,<em>something</em>
############################################# s = '*hello* is *something*' pattern =re.compile(r'\*(.+)\*')
print re.sub(pattern, r'<em>\1<em>', s) #输出结果<em>hello* is *something<em> #############################################
s = '*hello* is *something*' pattern =re.compile(r'\*(.+?)\*')
print re.sub(pattern, r'<em>\1<em>', s)
#输出结果<em>hello<em> is <em>something<em>
相关文章推荐
- 在Python程序和Flask框架中使用SQLAlchemy的教程
- ES报错Result window is too large问题处理 推荐
- Python正则匹配 -> 基本规则
- windows install scipy 错误:numpy.distutils.system_info.NotFoundError: no lapack/blas resources found
- ubuntu中两个版本的python下安装numpy
- Python的进程、线程、协程
- python请求java Selenium Webdriver
- Python的socket模块源码中的一些实现要点分析
- phython正则表达式 Python Re模块
- Python枚举类型
- 深入浅析python定时杀进程
- 36. Valid Sudoku [easy] (Python)
- python-gdb
- python正则表达式 Python Re模块
- windows下安装numpy,scipy遇到的问题总结
- 深入理解python函数递归和生成器
- python dataframe 针对多列执行map操作
- Python 入门:字符串连接及join用法
- python下调用pytesseract识别某网站验证码的实现方法
- 利用python进行数据分析ch02(usa.gob)