正则表达式:避免在句点后包含字母的单词
Regex: Avoid words which include letter after period
我有兴趣选择任何形式的 ES
个字母作为字符串中的第一个单词,该字符串可能会被其任何不同形式(E.S.
或 E-S
或 E - S
、E&S
或 E & S
或 E S
或 E/S
或 E<punctuation>S
) 而不仅仅是 ES
。同一个词中不应出现其他字母。
考虑姓名的完整数据集:
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&S
或 E & S
或 E S
。
这里只分析第一个字。以下不应包含,因为在 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
?
谢谢
我假设第一个单词的最后一个字符是等于或跟在 'S'
之后的第一个字符,然后是 space。如果是这样,您可以使用 re.findall
将字符串与以下正则表达式匹配。
r'^[^A-Z]*E[^A-Z]*S[^A-Z ]*(?= )'
Start your engine! <¯\(ツ)/¯> Python code
我有兴趣选择任何形式的 ES
个字母作为字符串中的第一个单词,该字符串可能会被其任何不同形式(E.S.
或 E-S
或 E - S
、E&S
或 E & S
或 E S
或 E/S
或 E<punctuation>S
) 而不仅仅是 ES
。同一个词中不应出现其他字母。
考虑姓名的完整数据集:
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&S
或 E & S
或 E S
。
这里只分析第一个字。以下不应包含,因为在 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
?
谢谢
我假设第一个单词的最后一个字符是等于或跟在 'S'
之后的第一个字符,然后是 space。如果是这样,您可以使用 re.findall
将字符串与以下正则表达式匹配。
r'^[^A-Z]*E[^A-Z]*S[^A-Z ]*(?= )'
Start your engine! <¯\(ツ)/¯> Python code