我想写一个正则表达式,它捕获一个字母,后跟一个句号,但如果它是在一个单词中,就不应该这样做。例如:在“这是马瑟斯博士的小屋”一句中-它应该只从博士那里捕捉“r”,而不是“n”,因为它是一个完整的单词。仅捕获包含单个字母的单词,或最多捕获两个字母。我试过这个正则表达式:
expr = ('[a-zA-Z]\.')
line = re.sub(expr, '', line)
这导致“r.”和“n.”被替换,这是我不想要的。我们如何限制它检查在fullstop之前是否有一个字母,或者最多2个字母
Tags:
使用:
仅当前面没有两个字母时,它才匹配后跟一个点的字母
Demo & explanation
你也可以用这样的东西
解释
\b
在单词的开头或结尾搜索模式.{0,1}
匹配任何重复0或1次的字符(.\.)
其中()
用于捕获组.
匹配任何单个字符\.
以转义实际周期您可以通过示例找到详细的解释here
相关问题 更多 >
编程相关推荐