当前位置:首页 » 编程语言 » python正则表达式变量

python正则表达式变量

发布时间: 2022-05-08 12:49:09

python 基础教程 第10章,正则表达式匹配问题

importre

a=re.compile(r'[(.+?)]')
scope={}


defreplace(ddd):
code=ddd.group(1)
try:
returnstr(eval(code,scope))
exceptSyntaxError:
exec(code,scope)
returncode


print(a.sub(replace,'[x=1],[y=2],[z=2],thesumof[x],[z]and[y]is[x+y+z]'))

scope是在全局变量里保存正则匹配出来的x,y,z变量,存到全局变量里去;

这本书的案例在except SyntaxError:后面少了点代码,只提供注释,前面其实已经提到用exec赋值了,只是代码里没有体现出来,我完善了下这个应该能看懂了,还有[],正则已经把[]替换掉了,换成x,y,z对应的值

Ⅱ python 正则表达式是什么

正则表达式是对字符串操作的一种逻辑公式,就是用事先定义好的一些特定字符、及这些特定字符的组合,组成一个“规则字符串”,这个“规则字符串”用来表达对字符串的一种过滤逻辑。

正则表达式是用来匹配字符串非常强大的工具,在其他编程语言中同样有正则表达式的概念,Python同样不例外,利用了正则表达式,我们想要从返回的页面内容提取出我们想要的内容就易如反掌了。

正则表达式的大致匹配过程是:

1、依次拿出表达式和文本中的字符比较。

2、如果每一个字符都能匹配,则匹配成功;一旦有匹配不成功的字符则匹配失败。

3、如果表达式中有量词或边界,这个过程会稍微有一些不同。

Ⅲ python正则表达式 匹配<a>标签的title

解决方法如下:

  1. rex=r'<a.*?title="(.*?)".*?>.*?</a>'

  2. 补充一些正则表达式的知识:

    ##总结
    ##^匹配字符串的开始。
    ##$匹配字符串的结尾。
    ##匹配一个单词的边界。
    ##d匹配任意数字。
    ##D匹配任意非数字字符。
    ##x?匹配一个可选的x字符(换言之,它匹配1次或者0次x字符)。
    ##x*匹配0次或者多次x字符。
    ##x+匹配1次或者多次x字符。
    ##x{n,m}匹配x字符,至少n次,至多m次。
    ##(a|b|c)要么匹配a,要么匹配b,要么匹配c。
    ##(x)一般情况下表示一个记忆组(rememberedgroup)。你可以利用re.search函数返回对象的groups()函数获取它的值。
    ##正则表达式中的点号通常意味着“匹配任意单字符”

Ⅳ python正则表达式匹配的问题

你这个正则能够匹配到什么呢?只能匹配到一个空的字符串吧?


怎么可能 会匹配到那么长


而且filter_str这个变量在哪里,就是上面的str?


这样,我给你写一个代码片段,你试一下:

filter_str='filterparent1:0queue800:800something1:1500matchac100809/ffffffffadf'
a=re.search(r'.*',filter_str)
printa.group(0)


正则中的问号,如果放在 +号和 *号之后,表示正则的懒惰模式,你可以网络一下正则贪婪和正则懒惰,学习一下你就了解了。

Ⅳ python正则表达式是什么意思

表示任意字符,*表示重复0至多次,.*表示任意字符出现0到多次

Ⅵ python用正则表达式是时出现错误

这明显是类型错误,search方法的第二个参数是,字符串类型,你提供的不符合规定,所以要先给这个变量一个字符串。

希望能帮到你。。。

Ⅶ python 正则表达式的字符串变量匹配第一次出现

将这个字符串变量与“?"连接起来组成新的变量不就得了
var1="hello "
var2 ="world"
var="("+var1+")?"+var2
re.match(var,"hello world")
re.match(var,"world")

Ⅷ python正则表达式问题

你这个正则能够匹配到什么呢看只能匹配到一个空的字符串吧看


怎么可能 会匹配到那么长


而且filter_str这个变量在哪里,就是上面的str看



这样,我给你写一个代码片段,你试一下:

filter_str='filterparent1:0queue800:800something1:1500matchac100809/ffffffffadf'
a=re.search(r'.*',filter_str)
printa.group(0)



正则中的问号,如果放在 +号和 *号之后,表示正则的懒惰模式,你可以网络一下正则贪婪和正则懒惰,学习一下你就了解了。

Ⅸ 如何编写python的正则表达式

Python re正则匹配中文,其实非常简单,把中文的unicode字符串转换成utf-8格式就可以了,然后可以在re中随意调用
unicode中中文的编码为/u4e00-/u9fa5,因此正则表达式u”[\u4e00-\u9fa5]+”可以表示一个或者多个中文字符
>>> import re

>>> s='中文:123456aa哈哈哈bbcc'.decode('utf8')
>>> s
u'\u4e2d\u6587\uff1a123456aa\u54c8\u54c8\u54c8bbcc'
>>> print s
中文:123456aa哈哈哈bbcc

>>> re.match(u"[\u4e00-\u9fa5]+",s)
<_sre.SRE_Match object at 0xb77742c0>

>>> pat='中文'.decode("utf8")
>>> re.search(pat,s)
<_sre.SRE_Match object at 0x16a16df0>

>>> newpat='这里是中文内容'.decode("utf8")

>>> news=re.sub(pat,newpat,s)
>>> print news
这里是中文内容:123456aa哈哈哈bbcc

Ⅹ python 正则

p = re.compile(r'<th class="subject new">(.*?)</th>',re.S)
不要继续问为什么, 去查python手册.
还有一个小提示,不建议用str作变量名, 因为str是python内建的一个类

热点内容
android敏捷开发 发布:2025-05-11 11:56:49 浏览:79
脚本pon 发布:2025-05-11 11:52:27 浏览:825
ct5推荐哪个配置 发布:2025-05-11 11:47:45 浏览:741
领购未上传发票 发布:2025-05-11 11:43:27 浏览:716
查看华为云服务器的ip地址 发布:2025-05-11 11:24:44 浏览:235
长沙银行密码多少 发布:2025-05-11 11:24:38 浏览:671
缓存手机视频合并软件哪个好 发布:2025-05-11 11:22:30 浏览:698
服务器c盘怎么清除 发布:2025-05-11 11:16:33 浏览:39
动态估算法 发布:2025-05-11 11:06:19 浏览:923
sql2008使用教程 发布:2025-05-11 10:53:16 浏览:315