Python正则表达式-- TypeError: 需要一个整数

5

我在使用 .match 正则模块函数时遇到了 TypeError: An integer is required 的错误。

以下是我的代码:

hAndL = hAndL.replace('epsilo\ell','epsilon')
pattern = re.compile("\frac{.*?}{ \frac{.*?}{.*?}}")
matching = pattern.match(pattern,hAndL)

hAndL是一个字符串,pattern是一个..模式。

我不确定为什么出现这个错误,需要帮助!


3
match()函数的第二个参数是一个起始位置整数,而不是一个字符串。 - MrAlexBailey
2个回答

7
当您使用re.compile编译正则表达式时,您不需要将正则表达式对象传回自身。根据文档:

The sequence

prog = re.compile(pattern)
result = prog.match(string)

is equivalent to

result = re.match(pattern, string)

已经提供了pattern,因此在您的示例中:

pattern.match(pattern, hAndL)

等价于:

re.match(pattern, pattern, hAndL)
                # ^ passing pattern twice
                         # ^ hAndL becomes third parameter

re.match的第三个参数是flags,它必须是一个整数。你应该这样做:

pattern.match(hAndL)

3
hAndL = hAndL.replace('epsilo\ell','epsilon')
pattern = re.compile("\frac{.*?}{ \frac{.*?}{.*?}}")
matching = pattern.match(hAndL)

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接