当前分类:python>>正文

re.sub报错expected string or bytes-like object

来源:互联网   时间:2022年7月2日   编辑

今天用正则过滤一段采集过来的内容中的超链接,出现这个报错

expected string or bytes-like object

这个报错的意思是,参数类型不符合要求,要求为string或者bytes-like对象。

这里来重新复习下re.sub的用法

看官方源码:

def sub(pattern, repl, string, count=0, flags=0):
    """Return the string obtained by replacing the leftmost
    non-overlapping occurrences of the pattern in string by the
    replacement repl.  repl can be either a string or a callable;
    if a string, backslash escapes in it are processed.  If it is
    a callable, it's passed the Match object and must return
    a replacement string to be used."""
    return _compile(pattern, flags).sub(repl, string, count)

 

一共有五个参数,其中最重要的四个参数,我们简单了解一下。

pattern为匹配用的正则表达式

repl为要替换的内容

string要替换的目标,原始字符串

count为最大替换次数,可以不填。

有两种写法:

1、re.sub(pattern,repl,string,count)

如果是这种写法,那就就是你的第三个参数string的类型不对。

可以简单修改为str(string)这样。当然,也要具体看你的数据类型以便于作出修正了。

 

2、也可以写作pattern.sub(repl,string,count)这样

同样也是你提供的string这个参数类型不符合。

[猜你喜欢]

标签: python报错