提问人:zDJ 提问时间:7/28/2022 最后编辑:zDJ 更新时间:11/18/2023 访问量:480
如何使用正则表达式删除字符串开头的数字模式
How to remove a digit pattern at the beginning of a string with regex
问:
我有一个这样的字符串,“123.234.567 删除此字符串中的数字”。输出应为“删除此字符串中的数字”。
此字符串中的数字遵循模式 xx.xxx.xxxxx...(数字后跟句点),但句点数和每个句点之间的位数不是静态的。这里有几个例子。xx.xxxxxx.xxxx.xxxxxxxx、x.xx.xxxx.xxxxxxxx.xx.xxxxx、x.xx.xxxxxx等。
如何删除正则表达式中后跟句点的这些数字?
到目前为止,我有这样的东西:
patt = re.compile('(\s*)[0-9].[0-9]*.[0-9]*(\s*)')
但这仅适用于特定格式。
答:
2赞
Barmar
7/28/2022
#1
- 用于匹配字符串的开头。
^
- 用于匹配任意数量的位数。
\d+
- 用于匹配文本字符
\.
.
- 放入一个组,以便您可以对其进行量化以匹配任意数量的组。
\.\d+
()
- 用于将其替换为空字符串以删除匹配项。
re.sub()
- 使用原始字符串,这样您就可以在正则表达式中放置文字反斜杠,而不必对它们进行转义。
patt = re.compile(r's*^\d+(?:\.\d+)+\s*')
string = patt.sub('', string)
评论
.
[0-9]
仅匹配一位数。如果要匹配任意位数,请使用 .[0-9]+