Python正则表达式被括号([])混淆了?
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了Python正则表达式被括号([])混淆了?,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1152字,纯文字阅读大概需要2分钟。
内容图文
参见英文答案 > 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.
内容总结
以上是互联网集市为您收集整理的Python正则表达式被括号([])混淆了?全部内容,希望文章能够帮你解决Python正则表达式被括号([])混淆了?所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。