Python正则表达式被括号([])混淆了?
发布时间:2020-12-20 12:39:35 所属栏目:Python 来源:网络整理
导读:参见英文答案 What is the difference between re.search and re.match?????????????????????????????????????8个 python是混淆的,还是程序员? 我有很多这样的话: some_dict[0x2a] = blahsome_dict[0xab] = blah,blah 我想做的是将十六进制代码转换为全部
参见英文答案 >
What is the difference between re.search and re.match?????????????????????????????????????8个
python是混淆的,还是程序员? 我有很多这样的话: some_dict[0x2a] = blah some_dict[0xab] = blah,blah 我想做的是将十六进制代码转换为全部大写,如下所示: some_dict[0x2A] = blah some_dict[0xAB] = blah,blah 所以我决定调用正则表达式.通常,我只是使用我的编辑器的regexps(xemacs)来做这件事,但转换为大写的需要将一个推入Lisp. ….好吧…… Python怎么样? 所以我把一个不起作用的短脚本鞭在一起.我已经将代码压缩到这个示例中,这也不起作用.在我看来,Python的正则表达式被代码中的括号弄糊涂了.是我还是Python? import fileinput import sys import re this = "0x2a" that = "[0x2b]" for line in [this,that]: found = re.match("0x([0-9,a-f]{2})",line) if found: print("Found: %s" % found.group(0)) (我正在使用()分组结构,所以我没有大写’0x’中的’x’.) 此示例仅打印0x2a值,而不是0x2b.这是正确的行为吗? 我可以通过将匹配表达式更改为: found = re.match("[0x([0-9,a-f]{2}])",line) 但我只是想知道是否有人可以让我对这里发生的事情有所了解. 在Linux上运行Python 2.6.2. 解决方法
re.match从字符串的开头匹配.使用re.search代替“匹配字符串中任何位置的第一个匹配项”.在文档中关于这一点的关键点是
here.
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |