使用Python正则表达式查找以特定字母

时间:2017-02-08 08:57:31

标签: python regex

我没有使用或进行太多文本搜索,但是找不到正则表达式的答案,找到所有以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)

2 个答案:

答案 0 :(得分:3)

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

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

这也可以匹配Trust-TesTTough&FasT等单词。

答案 1 :(得分:3)

我使用那个表达式:

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