我有一个用“公司”一词替换的公司名称列表。跨多行的列表。
cmp=re.compile(""" A | B |
C | D
""")
text='A is a great company, so is B'
cmp.sub('company',text)
但这是行不通的。我该如何解决?
编辑:
上面给出的示例未考虑公司名称中的空格。
company1=re.compile(r"""Berkshire Hathaway|Australia & New Zealand Bank
|Wells Fargo|AIG
|Ind & Comm Bank of China|BNP Paribas""")
company2=re.compile(r"""Berkshire Hathaway|Australia & New Zealand Bank
|Wells Fargo|AIG
|Ind & Comm Bank of China|BNP Paribas""",re.VERBOSE)
text='AIG is a great company, so is Berkshire Hathaway'
company1.sub('cmp',text)
>>> 'AIG is a great company, so is cmp'
company2.sub('cmp',text)
>>> 'cmp is a great company, so is Berkshire Hathaway'
您可以将其视为冗长模式的示例,该模式允许(并忽略)像换行符这样的空格:
import re
cmp = re.compile(r""" A | B |
C | D
""", re.VERBOSE)
text = 'A is a great company, so is B'
print(cmp.sub('company', text))
输出值
company is a great company, so is company
公司名称中包含空格。...关于如何解决这个问题的任何想法?
我们需要对名称中出现的空格字符进行CGI转义。这是一种基于正则表达式的方法,不需要对编码的空间进行解码:
import re
companies = re.compile(re.sub(r"(?<=\S) (?=\S)", r"[ ]", """Berkshire Hathaway|Australia & New Zealand Bank
|Wells Fargo|AIG
|Ind & Comm Bank of China|BNP Paribas"""), re.VERBOSE)
text = 'AIG is a great company, so is Berkshire Hathaway'
print(companies.sub('cmp', text))
输出值
cmp is a great company, so is cmp
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句