You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何从格式为'183\118\40'的含反斜杠字符串中提取数字?

正确提取字符串中数字的方法

首先要明确:你定义的st = '183\118\40'在Python中会被解析为转义后的字符串,而非字面的反斜杠分隔数字——因为\开头的序列是转义字符:

  • \118里的\11是八进制转义的制表符\t,剩下的8作为普通字符保留
  • \40是八进制转义的空格字符
    所以实际st的值是'183\t8 ',这才导致之前的方法得不到正确结果。

第一步:修正字符串定义

如果你的目标字符串是字面的反斜杠分隔数字(即183\118\40),必须用以下两种方式定义:

# 方式1:使用原始字符串(r前缀,忽略转义)
st = r'183\118\40'
# 方式2:用双反斜杠转义单个反斜杠
st = '183\\118\\40'

第二步:提取数字的正确方法

方法1:正则表达式直接匹配数字

直接匹配所有连续的数字序列,无需处理分隔符:

import re
st = r'183\118\40'
result = re.findall(r'\d+', st)
print(result)  # 输出: ['183', '118', '40']

方法2:split分割后过滤

用反斜杠分割字符串,再筛选出纯数字的部分:

st = r'183\118\40'
parts = st.split('\\')
result = [p for p in parts if p.isdigit()]
print(result)  # 输出: ['183', '118', '40']

内容的提问来源于stack exchange,提问作者Naomi Fridman

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.23 05:45:31