gpt4 book ai didi

python - 为什么python返回以下内容?

转载 作者:太空宇宙 更新时间:2023-11-03 13:54:49 26 4
gpt4 key购买 nike

p = re.compile('x*')
print(p.search('abxd'))

输出:

<re.Match object; span=(0, 0), match=''>
p = re.compile('x+')
print(p.search('abxd'))

输出:

<re.Match object; span=(2, 3), match='x'>

最佳答案

您看到的是 Python(更具体地说,Regex 模块)返回一个 re.Mach 对象。该对象具有您可以调用以获得所需结果的方法和类。

例如,如果您只想将匹配作为字符串,则此代码将打印它:

>>> expression = re.compile('.+')
>>> result = expression.search('abcd')
>>> print(result.group())
'abcd'

您当前的代码(第一个示例)还包含一个与输入字符串不匹配的表达式,这可能是一些困惑的根源。在我提供的示例中,我使用了 .+,它将匹配任何字符零到无穷次。 Regex101.com在帮助创建 Regex 表达式和理解语法方面做得非常出色。

Here's Regex Match 对象(您在当前代码中得到的内容)的文档,特别是 here.group() 方法的文档。

快速说明:

不需要在调用搜索函数之前编译表达式(但是,这完全是个人喜好,但更常用;在调用之前编译表达式是有正当理由的调用搜索功能,但这超出了回答这个问题的范围)。以下两个代码块将执行完全相同的操作:

expression = re.compile('.+')
print(expression.search('string'))
print(re.search(r'.+', 'string'))

在第二个 block 中,表达式是搜索函数中的第一个参数,前面有一个r,表示它是一个正则表达式。

希望这对您有所帮助!

关于python - 为什么python返回以下内容?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58055170/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com