如何在Python中创建正则表达式?

0 投票
5 回答
1080 浏览
提问于 2025-04-15 16:57

我正在尝试创建一些规则来从一个文本文件中筛选特定的内容。我想筛选的内容有这样的格式:

word_*_word.word

举个例子,我希望能得到每一个匹配的python代码。示例结果可能是:

program1_0.0-1_log.build
program2_0.1-3_log.build

我该怎么做呢?

非常感谢你的帮助!

5 个回答

1

Python的正则表达式模块叫做 re。你需要先导入这个模块,然后使用里面提供的函数

import re
if re.match(r'\w+_.*_\w+.\w+', "some_text_abc.x"):
   print "yeah."

在正则表达式字符串前加个 r 是很有用的,这样它就会被当作普通字符串来处理,不会对转义字符进行特殊处理。否则,反斜杠会被Python解释器当作特殊字符来对待,而正则表达式中需要用到的反斜杠就需要再加一个反斜杠来转义。

3

看起来你想使用一个像 r'\w+_.*_\w+\.\w+' 这样的模式——假设你用的 * 是表示“零个或多个任意字符”(如果不是的话,中间的 .* 部分就需要相应地调整)。一旦你有了正确的模式(具体取决于你对那个 * 的定义;-),你可以用 re.compile 来创建一个正则表达式对象,然后使用这个对象的 .findall 方法,把你的整体字符串作为参数传进去,这样就能得到一个匹配这个模式的所有不重叠子字符串的列表(如果你想一次获取一个这样的子字符串,也可以使用其他方法,比如 .finditer,然后逐个循环处理它们)。

3

试试这样做:

r'[a-zA-Z0-9]+_[^_]+_[a-zA-Z0-9]+\.[a-zA-Z0-9]+'

撰写回答