![](/img/trans.png)
[英]Is there a way to find exact match and not substring match using regex in python?
[英]How to extract substring with Python Regex Exact Match
我正在学习 Python 正则表达式(重新)来分析 twitter 文本。
假设我有如下 twitter 文本,我只想从 txt 中准确提取“3/10”。
Python 在这种情况下返回空列表 []。
txt = "my mood is low 3/10. 05/01/2021 Tuesday"
re.findall('^\d+\/\d{2}$', txt)
我的代码有什么问题?
除了使用锚来匹配整行,您可以使用否定环视来断言左侧的空白边界,而不是右侧的/
以仅匹配3/10
。
(?<!\S)\d+\/\d{2}(?!/)
import re
txt = "my mood is low 3/10. 05/01/2021 Tuesday"
print(re.findall('(?<!\S)\d+\/\d{2}(?!/)', txt))
Output
['3/10']
删除^
和$
re.findall(r'\b\d+/\d{2}\b', txt)
根据重新文档
^
(Caret.) 匹配字符串的开头,并且在 MULTILINE 模式下也会在每个换行符之后立即匹配。
$
匹配字符串的结尾或字符串结尾的换行符之前,并且在 MULTILINE 模式下也匹配换行符之前。 foo 匹配 'foo' 和 'foobar',而正则表达式 foo$ 只匹配 'foo'。 更有趣的是,在 'foo1\nfoo2\n' 中搜索 foo.$ 通常匹配 'foo2',但在 MULTILINE 模式下搜索 'foo1'; 在 'foo\n' 中搜索单个 $ 将找到两个(空)匹配项:一个在换行符之前,一个在字符串末尾。
在您的示例中不是这种情况。 您将需要使用更高级的零长度断言。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.