2013-07-27 58 views
1

我想用正则表达式来匹配特定的模式并删除整个模式。 例如:“在这里留下随机文本≻其他文本”非ASCII字符的Python - re.sub

我需要它最终像这样“离开其他测试”。现在我将脚本转换为使用unicode,但它拒绝在列表中找到该字符串。

我试图根据文字值调用它,它也是十六进制替代(使用十六进制编辑器找到符号的确切十六进制代码,utf-8符号)。

请记住'≻'与'>'不一样。

尝试:

eleInfo = "Leave ≺random text here≻Other text" 

eleInfo = re.sub("≺.*?≻","",eleInfo) 

尝试:

eleInfo = "Leave ≺random text here≻Other text" 

eleInfo = re.sub("\x89\xBA.*?\x89\xBB","",eleInfo) 

尝试:

eleInfo = "Leave ≺random text here≻Other text" 

eleInfo = re.sub("\\x89\\xBA.*?\\x89\\xBB","",eleInfo) 

任何帮助或想法,将不胜感激!

回答

0

看起来你好像缺少了\ xe2。以下作品:

re.sub("\\xe2\\x89\\xba.*\\xe2\\x89\\xbb","",eleInfo) 

此外,你可以转换字符串为Unicode

eleInfo = unicode("Leave ≺random text here≻Other text") 

re.sub(u"[\u227a].*[\u227b]","",eleInfo) works too. 
+0

有什么奇怪的是我已经有了这一点,它没有工作。也许linux正在不适当地喷出符号。无论哪种方式,你是对的,这是行得通的。从xml文件调用它并创建字符串时,它必须是linux中的符号。谢谢! –