作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
下面我有我想从中提取月份的文本(在这种情况下是 7 月)。word_pattern
确保文本包含这些词,
而month_pattern
将提取月份。所以首先我验证文本段落
包含某些单词,如果包含,那么我尝试提取 month
当模式单独使用时,它们会匹配,但如果我尝试将它们组合起来
我最终没有匹配项。
我无法弄清楚我做错了什么。
import re
text = ''' The number of shares of the
registrant’s common stock outstanding as
of July 31, 2017 was 52,833,429.'''
# patterns
word_pattern = r'(?=.*outstanding[.,]?)(?=.*common)(?=.*shares)'
month_pattern = r'(Jan(?:uary)?|Feb(?:ruary)?|Mar(?:ch)?|Apr(?:il)?|May|Jun(?:e)?|Jul(?:y)?|Aug(?:ust)?|Sep(?:tember)?|Oct(?:ober)?|(Nov|Dec)(?:ember)?)'
pattern = word_pattern + month_pattern
print(re.search(pattern, text, flags = re.IGNORECASE|re.DOTALL))
预期结果:
最佳答案
正则表达式不能像那样简单地连接起来。问题是您的单词模式仅使用前瞻,因此不会向前移动位置,这在月份仅出现在字符串中时会成为问题。因此,您需要使用弥合差距的量词让光标前进到月份位置,例如.*
尝试
(?=.*outstanding[.,]?)(?=.*common)(?=.*shares).*(Jan(?:uary)?|Feb(?:ruary)?|Mar(?:ch)?|Apr(?:il)?|May|Jun(?:e)?|Jul(?:y)?|Aug(?:ust)?|Sep(?:tember)?|Oct(?:ober)?|(Nov|Dec)(?:ember)?)
Demo
pattern = word_pattern +'.*'+ month_pattern
应该做的伎俩。
re.search(...).group(1)
关于python - 非捕获组未按预期工作的正则表达式前瞻,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64111606/
我有一个看起来像这样的字符串: text = "9) 9 的文本\r\n10) 10 的文本\r\n11) 11 的文本\r\n12) ...\r\n123) 123 的文本" 我正在尝试将其拆分如下
下一代的 3D Tiles 前瞻 原文:Introducing 3D Tiles Next, Streaming Geospatial to the Metaverse 原文发布时间:2021年11月
我有一个使用正则表达式回顾的 string.replace() 函数。 myString.replace(/(?
我是一名优秀的程序员,十分优秀!