Py学习  »  Python

尝试匹配以一个字母开头、以另一个python正则表达式结尾的单词[重复]

e007q • 3 年前 • 1231 次点击  

我不使用或不做太多文本搜索,但无法找到一个答案,即正则表达式是如何从一个文本文件中查找以t开头、以t结尾的所有单词,其中每个单词都位于一个换行符上。从搜索中尝试了一些建议;下面将查找所有以T开头的单词,以及T下一个出现的位置。然而,我想找出最后一个字母是T的位置,不管这两个字母之间出现了多少个T。抱歉,如果这真的很琐碎,但在每一次组合后,我都会发现我没有结果。我不确定为什么 r'^T.*T$' 没用。

with open('/Users/../words.txt') as f:
    passage = f.read()
words = re.findall(r'T.+T', passage)
print(words)
Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/133817
 
1231 次点击  
文章 [ 2 ]  |  最新文章 3 年前
RomanPerekhrest
Reply   •   1 楼
RomanPerekhrest    8 年前

使用单词边界锚 \b 和非空白字符 \S :

words = re.findall(r'\bT\S+T\b', passage)

这也将允许匹配以下单词: Trust-TesT , Tough&FasT

Jean-François Fabre
Reply   •   2 楼
Jean-François Fabre    8 年前

我会用这个表达:

re.findall(r"\bT\w*?T\b",s))
  • 使用单词边界
  • 使用任意数量的 \w 避免两者之间出现匹配的空格
  • 使用“非贪婪”模式(这里可能没有那么有用,因为word boundary已经完成了这项工作)