【发布时间】:2019-02-12 14:05:30
【问题描述】:
所以我正在处理一个文本分析问题,我正在尝试使用 Python 中的正则表达式删除 0 到 999 之间的所有数字。我已经尝试过 Regex Numeric Range Generator 来获取正则表达式,但我没有成功。我只能删除所有数字。
我已经尝试了几个正则表达式,但没有成功。这是我尝试过的
# Remove numbers starting from 0 ==> 999
data_to_clean = re.sub('[^[0-9]{1,3}$]', ' ', data_to_clean)
我也试过这个:
# Remove numbers starting from 0 ==> 999
data_to_clean = re.sub('\b([0-9]|[1-8][0-9]|9[0-9]|[1-8][0-9]{2}|9[0-8][0-9]|99[0-9])\b', ' ', data_to_clean)
这个:
^([0-9]|[1-8][0-9]|9[0-9]|[1-8][0-9]{2}|9[0-8][0-9]|99[0-9])$
还有这个:
def clean_data(data_to_clean):
# Remove numbers starting from 0 ==> 999
data_to_clean = re.sub('[^[0-9]{1,3}$]', ' ', data_to_clean)
return data_to_clean
我有很多数字,但我只需要删除小数点后 3 位以下的数字并保留其他数字。
感谢您的帮助
【问题讨论】:
-
您的尝试中的这种组合不应该有效吗:
\b[0-9]{1,3}\b?如果您检查:regex101.com/r/qDrobh/6 它应该可以工作 -
你能发一个示例文本吗?应该在哪里替换数字?
-
**bonjour la commande 2000501784 est validée et pour autant je ne peux la réceptionner poste 30 merci d avance ** 我得到了同样的结果
-
我应该删除 30
标签: regex python-3.x nlp numeric-ranges