Python 正则表达式匹配冒号前的字符串直到空格
我有一个文本文件中的示例字符串。我想找到冒号之前的所有单词,直到空格。 我编写了如下代码:Python 正则表达式匹配冒号前的字符串直到空格,python,regex,Python,Regex,我有一个文本文件中的示例字符串。我想找到冒号之前的所有单词,直到空格。 我编写了如下代码: import re text = 'From: mathew <mathew@mantis.co.uk>\nSubject: Alt.Atheism FAQ: Atheist Resources\n\nArchive- name: atheism/resources\nAlt-atheism-archive-name:' email_data = re.findall("[^\s].*(?=
import re
text = 'From: mathew <mathew@mantis.co.uk>\nSubject: Alt.Atheism FAQ: Atheist Resources\n\nArchive-
name: atheism/resources\nAlt-atheism-archive-name:'
email_data = re.findall("[^\s].*(?=:)", text)
print(email_data)
期望输出:
['From', 'Subject', 'FAQ', 'Archive-name', 'Alt-atheism-archive-name']
由于使用了(*),代码在换行符之前一直拾取数据。我想把它限制为空白,所以我放了[^\s],但它不起作用。我能做些什么呢?您可以使用
email_data = re.findall(r"\S[^:\s]+(?=:)", text)
请参阅和
详细信息
-非空白字符\S
-1+除[^:\s]+
和空格以外的字符:
-右边必须有一个(?=:)
字符(该字符未被使用,也未添加到匹配值中):
re.IGNORECASE
标记与regex模式一起使用
\b[a-z-]+(?=:(?:\s|$))
我下面的回答有用吗?请让我知道。
\b[a-z-]+(?=:(?:\s|$))