【问题标题】:Removing specific pattern from a string using regex in python在python中使用正则表达式从字符串中删除特定模式
【发布时间】:2020-05-29 08:01:59
【问题描述】:

我正在尝试使用以下代码删除模式

x = "mr<u+092d><u+093e><u+0935><u+0941><u+0915>" 
pattern = '[<u+0-9de>]'
re.sub(pattern,'', x)

输出

mr

对于给定的示例字符串,此输出实际上是正确的,但是当我将此代码运行到语料库时,它会删除所有出现的“de”以及数字等。我希望仅在 时替换这些内容用过的。

【问题讨论】:

    标签: python regex string pattern-matching


    【解决方案1】:

    你需要把&lt;&gt;放在外面,因为结构总是

    • &lt;开头
    • 关注u\+
    • 4 个六进制字符 [0-9a-f]{4} 来自 Unicode 定义
    • &gt;结尾
    pattern = '<u\+[0-9a-f]{4}>'
    re.sub(pattern,'', x)
    

                                    REGEX DEMOCODE DEMO

    【讨论】:

    • 因为hex 字符。
    • @Binh 这是 Unicode 定义。这4个字符是十六进制
    • @Mandy8055 哦,我没注意到它是hex 字符,我明白了。谢谢曼迪
    • @azro 另一个疑问,据我了解,使用 {4} 是因为总是有 4 个字符。如果字符数不统一,我们可以使用 '|'并创建多个模式。解决此问题的更好方法是什么?
    • @RajendraNayal 得到一个大小区间做 &lt;u\+[0-9a-f]{2,5}&gt; 例如接受 3-4-5 长度,如 023、a5d0 和 5d9c0
    猜你喜欢
    • 1970-01-01
    • 2021-08-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-10-09
    • 2013-11-03
    • 2022-01-27
    • 1970-01-01
    相关资源
    最近更新 更多