我感兴趣的是选择任何形式的ES
字母作为字符串中的第一个单词,它可以被其任何不同形式(E.S.
或E-S
或E-S
,E)替换
考虑名称的完整数据集:
E.S.P. BS.
E. & S. BS.
ES ENERGY
E.S.C. BS.
E.S. BS.
E.S.K. BS.
E.S.G. BS.
ES.K.JI BS.
仅应考虑包含任何形式的ES
的词语。例如,E.S.
或E-S
或E-S
,E
这里的分析只是第一个字。不应包括以下内容,因为在ES形式之后,第一个单词包含更多字母:
E.S.P. BS. #Extra P.
E.S.C. BS. #Extra C.
E.S.K. BS. #Extra K.
E.S.G. BS. #Extra G.
ES.K.JI BS. #Extra K.JI
另一方面,正确获取这些字符串:
E. & S. BS.
ES ENERGY
E.S. BS.
我用于此选择的正则表达式是下一个:
^(e\W*s)\W*(?!\w)\b
我不知道为什么这个正则表达式模式不起作用。如何确保只考虑任何形式的ES
?
谢啦
我假设第一个单词的最后一个字符是第一个字符,等于或紧随其后的是一个空格。如果是这样,您可以使用re.findall
将字符串与以下正则表达式匹配。
r'^[^A-Z]*E[^A-Z]*S[^A-Z ]*(?= )'
启动你的引擎!