【问题标题】:Python - re.sub for non-ascii characterPython - re.sub 用于非 ascii 字符
【发布时间】:2013-07-27 01:30:17
【问题描述】:

我正在尝试使用正则表达式来匹配特定模式并删除整个模式。 例如:“在此处留下≺随机文本≻其他文本”

我需要它以这样的“离开其他测试”结束。现在我将我的脚本转换为使用 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)

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

【问题讨论】:

    标签: python regex python-2.7 unicode


    【解决方案1】:

    您好像缺少 \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.
    

    【讨论】:

    • 奇怪的是我已经有了它,但它没有用。也许linux不正确地喷出符号。不管你是对的,这确实有效。从xml文件调用它并制作字符串时,它必须是linux破坏符号。谢谢!
    猜你喜欢
    • 2014-07-10
    • 2014-12-06
    • 2011-07-10
    • 1970-01-01
    • 1970-01-01
    • 2015-01-06
    • 2013-12-22
    • 2018-10-24
    • 1970-01-01
    相关资源
    最近更新 更多