用于查找首字母缩略词并避免由该模式组成的单词的正则表达式

2024-09-30 22:21:39 发布

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

我使用的是python2.7和BeautifulSoup。 我需要找到一个首字母缩写词,如abca.b.c.,并避免假阳性,如qweabcrty。模式可以在字符串的开头,也可以是结尾,前后可以有空格、引号、双引号、连字符(等等),但不能是字母数字字符。在

我来找这个正则表达式

[^\w]?a\.?b\.?c\.?[^\w]?

这是可以的

  • abc公司
  • a、 不列颠哥伦比亚省
  • 废话(abc)
  • abc废话
  • 废话abc
  • 废话abc废话
  • 废话abc废话

但它也被发现了(我不想):

  • qweabcrty公司

如果我移除在两个[^\w]之后,它将不再找到案例1、2、4和5,因为它希望在之前和/或之后找到一些东西。在

长话短说,我如何指定: abc可以是字符串中的anyware,但是如果前面和/或后面有一个字符,则它不能是字母数字字符。在

python代码如下所示:

^{pr2}$

Tags: 字符串结尾字母模式公司数字阳性字符
1条回答
网友
1楼 · 发布于 2024-09-30 22:21:39

尝试使用单词边界(\b)元字符:

html = """
<html>
 <a>abc</a>
 <a>a.b.c.</a>
 <a>blah (abc)</a>
 <a>abc-blah</a>
 <a>blah-abc</a>
 <a>blah abc blah</a>
 <a>blah-abc-blah</a>
 <a>qweabcrty</a>
</html>"""

import re
print re.sub(r'\b(abc|a\.\b.\.c)\b', '@@@', html)

印刷品

^{pr2}$

相关问题 更多 >