[英]replacement pattern in python(re.sub())
有人可以向我解释以下re.sub()
的过程吗?
我在想这个过程如下:
寻找一个"."
然后寻找一个数字,然后寻找另一个介于1
和9
之间的数字。 现在我迷路了。 问号是什么? \\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.