用正则表达式匹配字符串中的多个单词

2024-09-26 17:56:32 发布

您现在位置:Python中文网/ 问答频道 /正文

我使用Python在一个句子中匹配几个单词,并根据单元测试对它们进行测试。我需要一个匹配所有这些单词的正则表达式,并给出下面提到的输出:

firstword = "<p>This is @Timberlake</p>"
outputfirstword = "@Timberlake"

查找以@符号开头的单词

^{pr2}$

单词之间的句点可以。在

thirdword = "This is @Timberlake. Yo!"
outputthirdword = "@Timberlake"

如果句点后有空格,则句点和空格都不计入outputthirdword

fourthword = "This is @Timberlake."
outputfourthword = "@Timberlake"

不包括最后一个句点(.)。在


Tags: is符号单元测试this单词句子空格yo
3条回答
@[a-zA-Z]+\b(?:\.[a-zA-Z]+\b)?

你可以用这个。See demo.

^{pr2}$

使用此正则表达式:

(?i)@[a-z.]+\b

您可以使用捕获组提取所需的部分。 Live demo

解释:

^{pr2}$

一种方法是使用以下regex并用dot去除结果:

@[a-zA-Z.]+

例如,如果使用re.search,则可以执行以下操作:

^{pr2}$

您可以使用以下不需要strip的正则表达式:

@[a-zA-Z]+.?[a-zA-Z]+

Demo

相关问题 更多 >

    热门问题