我正在尝试通过去除不需要的前缀(如 0、*、# 和 +)来使用正则表达式匹配电话号码
例如
+*#+0#01231340010
应该产生,
1231340010
我正在使用 python re 模块
我试着跟随,
re.sub(r'[0*#+]', '', '+*#+0#01231340010')
但它也会删除后面的 0。
我尝试使用正则表达式组,但仍然无法正常工作(或者我确实做错了什么)。
我们将不胜感激。
提前致谢。
最佳答案
我相信您正在做的是尝试删除字符串中 [1-9]
范围内第一个数字之前的所有内容。它比使用更安全
re.sub(r'^[^1-9]+', '', input)
参见 regex demo
图案细节:
^
- 字符串的开始[^1-9]+
- 1 个或多个 (+
) 个字符,而不是 1-9 范围内的数字(不包括0
)
我说“更安全”意味着问题中可以有其他没有列举的前缀,比如p
等
关于python - 正则表达式仅在字符串开头替换匹配项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38776050/