繁体   English   中英

python(re.sub())中的替换模式

[英]replacement pattern in python(re.sub())

问题

在此处输入图片说明

有人可以向我解释以下re.sub()的过程吗?

我在想这个过程如下:

寻找一个"." 然后寻找一个数字,然后寻找另一个介于19之间的数字。 现在我迷路了。 问号是什么? \\d*什么作用? 为什么在这种情况下我们需要使用原始字符串正则表达式?

如果您想了解该过程,我可以简单地向您解释。 我不知道此正则表达式是否正在执行您想要的操作。

  • 首先, . 是正则表达式中的特殊字符,表示任何字符。 但是,我们这里要使用点字符。 在正则表达式中,这可以通过使用转义字符\\这样\\.来完成\\. 因此,使用. 表示任何字符并使用\\. 表示一个点。
  • \\d代表任何数字,其行为与[0-9]完全相同
  • 当您使用[1-9] ,您将指定从1到9获得数字,这意味着排除了零。
  • 我们可以使用星号*选择零个或多个字符。 与+不同,后者用于选择一个或多个字符。 因此,使用\\d*表示[0-9]任何连续数字或没有。
  • ? 用于表示仅使用一个字符或不使用任何字符。 那么,使用[1-9]? 表示尝试在1到9的IFUND之间找到一个数字。
  • 括号()用于将整个正则表达式分组在一个输出中。

如果您想了解更多有关正则表达式的信息,请参阅以下很棒的备忘单。 在此处输入图片说明

注意:

我认为您在问题中编写的正则表达式不正确。 我认为应该如下所示(\\d*\\.\\d\\d[1-9]?)才能获得相同的结果。 我将尝试使用此数字3.141500012解释此正则表达式。 \\d*\\. 表示找到与点3.匹配的点之前可以找到的任意数量的数字。 然后在\\d\\d匹配点后的两位数字14 最后, [1-9]? 如果找到与我们示例中的1匹配的数字,则匹配1到9之间的任何数字。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM