题解 | #截断电话号码#

截断电话号码

https://www.nowcoder.com/practice/078d1abcb55648f687a78d87e4b3cb69

import re
str = input()
res = re.match(r'(\d*[-]?)*',str)
print(res.group())
( 和 ):这两个括号用于将模式的一部分分组。在这个模式中,括号的作用是将 \d*[-]? 这个子模式分组。

\d*:这部分表示匹配零个或多个数字,与之前解释的一样。

[-]?:这部分表示匹配一个可选的-,与之前解释的一样。

*:这个星号表示匹配前面的分组零次或多次。因此,(\d*[-]?)* 表示匹配前面的分组(包含一个数字和可选负号)零次或多次。
代码使用 re.match() 函数来尝试将正则表达式模式应用于输入的字符串 str。re.match() 函数会尝试从字符串的开头进行匹配,如果匹配成功,则返回一个匹配对象,否则返回 None。
在正则表达式中,你可以使用括号来创建一个或多个分组。当使用 re.match() 或 re.search() 函数找到匹配项后,你可以使用 group() 方法来获取匹配的内容。

如果你的模式中没有使用分组,那么 group() 将返回整个匹配的字符串。

例如,在你的代码中,res 是通过 re.match() 函数返回的匹配对象。如果匹配成功,你可以使用 res.group() 来获取与模式匹配的字符串。

注意,如果没有找到匹配项,调用 group() 方法将引发一个 AttributeError 错误。

全部评论

相关推荐

10-16 15:48
算法工程师
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务