我想在Python3中找到表情符号,然后我打印出我的字符串是\ud83d\ude0a
我可以通过re.compile(r'(\\ud83d\\ude0a)')找到它
但是当我想使用方括号来查找如\ud83d[\ude00-\ude4f]时
我写了这个re.compile(r'(\\ud83d([\\ude00-\\ude4f]))');
而只是在\ud83d\ude0a中映射ude0a。
我的整个代码
str = '\\ud83d\\ude0a'
print(str)
emoji_pattern = re.compile(r'(\\ud83d([\\ude00-\\ude4f]))');
# emoji_pattern = re.compile(r'(\\ud83d\\ude0a)');
print(emoji_pattern.sub(r'', str))发布于 2017-12-28 00:57:16
问题出在你使用方括号的方式。
方括号用于从括号中的字符中选择单个字符。因此,当您编写[\\ude00-\\ude4f]时,它将只被转换为其中的一个字符(例如,\\、u、d、0等),而不是您希望的那样,从\ud83d\ude00转换为\ud83d\ude4f。
要解决此问题,请尝试使用(\\ud83d(\\ude[0-4][0-9a-f]))。它将找到字符的序列\ud83d\ude,然后在0到4的范围内,然后是0到9或a到f的序列中的一个字符。因此,这将检测到所需的序列,并可以检查here。
https://stackoverflow.com/questions/47994441
复制相似问题