【发布时间】:2012-03-28 13:36:26
【问题描述】:
我可能对正则表达式有一些非常基本的问题。我有以下正则表达式,当硬编码在应用程序中时它工作正常,但后来我用 ConfigParser 读取它似乎不起作用:
r"\[[+-]?\d+(?:\.\d+)?\]"
我的阅读方式是:
Config = ConfigParser.ConfigParser()
Config.read("test.conf")
test_regex = Config.get("test","test_regex")
search_pattern = re.compile(test_regex)
test_result = search_pattern.findall(text_to_parse)
test.conf 部分
[test]
test_regex=r"\[[+-]?\d+(?:\.\d+)?\]"
测试的输入可能如下:
text_to_parse = " Here is the [TEST-DONE]" // Success: my regex is extracting [TEST-DONE]
text_to_parse = " Here is the some text" // Failure my regex returns empty list
这个问题有什么解决办法吗?
非常感谢,
塞尔希。
编辑:是我的注意力错误,正如我在回答的评论中提到的那样,但是从文件中的正则表达式中删除 r 的解决方案有很大帮助。
【问题讨论】:
-
显示 test.conf 的相关位。
-
不,没有人可以根据这些信息帮助您。展示一个完整、正确、简洁的代码示例和一个错误的会话,并解释它的错误之处。 sscce.org
-
print test_regex看看你得到了什么。不要记住不要在配置文件中使用r或引号;快速查看您在这些配置文件中未引用值的文档。 -
@Marcin 我认为除了 test.conf 文件之外提供的信息非常清楚。并且不要带着 sscce 来这里只是为了拖钓。
-
@Marcin:我必须同意。这个问题并没有你想象的那么糟糕,尤其是代码示例是完整、正确和简洁,只是缺少配置文件输入。
标签: python regex file-io configparser