如何只为1个字母后跟句号编写正则表达式?

2024-05-13 23:58:58 发布

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

我想写一个正则表达式,它捕获一个字母,后跟一个句号,但如果它是在一个单词中,就不应该这样做。例如:在“这是马瑟斯博士的小屋”一句中-它应该只从博士那里捕捉“r”,而不是“n”,因为它是一个完整的单词。仅捕获包含单个字母的单词,或最多捕获两个字母。我试过这个正则表达式:

expr = ('[a-zA-Z]\.')
line = re.sub(expr, '', line)

这导致“r.”和“n.”被替换,这是我不想要的。我们如何限制它检查在fullstop之前是否有一个字母,或者最多2个字母


Tags: re字母line单词小屋博士exprza
2条回答

使用:

(?i)(?<![a-z]{2})[a-z]\.

仅当前面没有两个字母时,它才匹配后跟一个点的字母

Demo & explanation

你也可以用这样的东西

\b.{0,1}(.\.)

解释

\b在单词的开头或结尾搜索模式


.{0,1}匹配任何重复0或1次的字符


(.\.)其中()用于捕获组.匹配任何单个字符\.以转义实际周期

您可以通过示例找到详细的解释here

相关问题 更多 >