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 错误。