Regex 使用正则表达式为表情符号添加特殊字符中的空格

Regex 使用正则表达式为表情符号添加特殊字符中的空格,regex,python-3.x,string,Regex,Python 3.x,String,我有一个结合表情符号编码的句子,我想在\u个字符后分开 sentance=whoaa\\ud83d\\udc4f 其他情况: sentance=blabla whoaaa\\ud83d\\udc4f blabla 我想要这样的结果: 结果=blabla whoaa\\ud83d\\udc4f blabla 或 sentance=whoaa\\ud83d\\udc4f 我猜这个表达式可能会这样: (?:\s|^)([^\\]+)(?=\\u|\\\\u) 用re.sub测试 输出 如果要探索/简

我有一个结合表情符号编码的句子,我想在\u个字符后分开

sentance=whoaa\\ud83d\\udc4f 其他情况:

sentance=blabla whoaaa\\ud83d\\udc4f blabla 我想要这样的结果:

结果=blabla whoaa\\ud83d\\udc4f blabla 或

sentance=whoaa\\ud83d\\udc4f
我猜这个表达式可能会这样:

(?:\s|^)([^\\]+)(?=\\u|\\\\u)
用re.sub测试 输出
如果要探索/简化/修改该表达式,请在的右上面板中进行说明

我认为在正则表达式中很难做到这一点,因为\u不是字符,而是unicode值语法的一部分

我要做的是测试每个字符是否与问题中的表情相似:

试试这个

进口稀土 模式=重新编译“^[A-Za-z\s]*” 语句1=Whoaaa\\ud83d\\udc4f sentance2=blabla whoaaa\\ud83d\\udc4f blabla 表情符号前的字符串=pattern.findallsentance1[0] 仅表情符号=句子1。在表情符号[1]之前拆分字符串。替换“\\”、“\\\\” printf{string_before_emoji}{emoji_only} whoaa\\ud83d\\udc4f 表情符号前的字符串=pattern.findallsentance2[0] 仅表情符号=句子2。在表情符号[1]之前拆分字符串。替换“\\”、“\\\” printf{string_before_emoji}{emoji_only} blabla whoaa\\ud83d\\udc4f blabla 我使用的正则表达式模式


简单的find r\\u?pattern.findallsentance[0]在其他情况下不使用我只需在表情符号之前选择整个字符串,然后再添加一个空格,并将所有其他表情符号组合到其中@AlhamsyaBintangDyasta。我只是更改了我的问题我只是更改了我的正则表达式,请再次检查。它现在正在为您的最新更改工作,并直观地显示新的regex@AlhamsyaBintangDyasta。好的,我得到了您的答复,非常感谢
import re

regex = r"(?:\s|^)([^\\]+)(?=\\u|\\\\u)"
test_str = "blabla whoaaa\\\\ud83d\\\\udc4f blabla blabla whoaaa\\\\ud83d\\\\udc4f\\\\ud83d\\\\udc4f blabla\\\\ud83d blabla\\\\ud83d blabla\\\\ud83d "
subst = "\\1 "

print(re.sub(regex, subst, test_str))
blabla whoaaa \\ud83d\\udc4f blabla blabla whoaaa \\ud83d\\udc4f\\ud83d\\udc4f blabla \\ud83d blabla \\ud83d blabla \\ud83d
result = "".join([" " + c if test_emoji(c) else c for c in test_str])