我需要提取格式为:dd Month yyyy(2013年8月20日)的日期。 我尝试了以下正则表达式:
\d{2} (January|February|March|April|May|June|July|August|September|October|November|December) \d{4}
它可以与regex测试人员一起工作(与一些文本一起检查-星期一,2013年8月19日),但是Python似乎不理解它。我得到的结果是:
>>>
['August']
>>>
有人能理解我为什么会这样吗?你知道吗
谢谢你!你知道吗
看起来您仅从捕获组获取数据,请尝试以下操作:
我在整件事周围放了一个捕获组,把这个月变成了一个非捕获组。不管是什么给了你“八月”都应该给你全部。你知道吗
我刚刚看了一些python正则表达式的东西here
看到这一点,我猜测(因为您没有展示您实际是如何使用这个regex的)您正在做
group(1)
,它现在将与我上面提供的regex一起工作。你知道吗看起来你还可以使用
group(0)
来获取整个过程(如果我的假设是正确的,你就是这么做的)。这将工作在您的原始正则表达式以及我的修改版本。你知道吗你用
re.findall
了吗?默认情况下,如果模式中至少有一个捕获组,re.findall
将只返回表达式的捕获部分。你知道吗您可以通过删除每个捕获组来避免这种情况,从而导致
re.findall
返回整个匹配:或者组成一个大的捕获组:
或者,更方便的方法是,将每个组件都设为捕获组:
如果需要处理单独的日/月/年组件,则后一种形式更有用。你知道吗
相关问题 更多 >
编程相关推荐