【问题标题】:How to convert "[A-Z]" to "ABCD,,," by using RE in python [closed]如何在 python 中使用 RE 将“[A-Z]”转换为“ABCD,,”[关闭]
【发布时间】:2016-12-28 17:43:54
【问题描述】:

是否可以在 python 中 convert 一个字符串,例如

"[A-Z]" to "ABCDE...XYZ"

"[0-9]" to "012..9" 

或其他类似的 REs

通过使用re python 模块。

【问题讨论】:

  • 为什么要使用正则表达式而不是编写基本的解析器?
  • 因为我只想在 new = re.MyExtractor(old) 这样的一行中执行此操作
  • 为什么不创建一个名为 MyExtractor() 的函数?试图用re 做你正在做的事情并不是一个很好的解决方案
  • AFAIK, re 用于模式匹配并可能替换为其他模式。所以确定你可以定义像用ABC...Z 替换A-Z 这样的东西,但是为什么不像其他人建议的那样做一个解析器。归根结底,没有一种神奇的班轮可以做到不臃肿的功能。

标签: python regex string


【解决方案1】:

正则表达式是关于匹配,而不是生成。

当然,您可以预先生成您关心的所有字符的序列,然后将您的 RE 与之匹配,只选择匹配的字符。

import re

all_chars = "".join(chr(x) for x in range(32, 128))  # only ASCII here

digits_and_caps_rx = re.compile('([0-9]|[A-Z])')

print "".join(digits_and_caps_rx.findall(all_chars))

【讨论】:

  • 有趣又不错的解决方案
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2023-03-06
  • 1970-01-01
  • 2012-09-20
  • 2019-07-31
  • 1970-01-01
  • 1970-01-01
  • 2022-11-14
相关资源
最近更新 更多