使用regex-Python-RE在三位数后添加空格

使用regex-Python-RE在三位数后添加空格,python,regex,python-3.x,regex-lookarounds,Python,Regex,Python 3.x,Regex Lookarounds,我有一个值为:+911244567的文本,我想在124之后添加一个空格,因此预期结果将为:+911244567 注意:输入可以是具有给定格式的任何数字。 我想在python 3.6中使用正则表达式执行此操作 提前谢谢 >>> import re >>> print(re.sub(r"(\d{3})", r"\1 ", "+91 1244567", count=1)) +91 124 4567 >>> 这仅将前(count=1)三位数字替换

我有一个值为:+911244567的文本,我想在124之后添加一个空格,因此预期结果将为:+911244567

注意:输入可以是具有给定格式的任何数字。

我想在python 3.6中使用正则表达式执行此操作

提前谢谢

>>> import re
>>> print(re.sub(r"(\d{3})", r"\1 ", "+91 1244567", count=1))
+91 124 4567
>>> 

这仅将前(
count=1
)三位数字替换为自身(
\1
,第一个捕获组的反向引用)加上一个空格。

利用这些正则表达式技巧

  • \d
    数字
  • 可选
  • 正则表达式群
  • 正则代换
使用正则表达式:

(\+\d{2})\s?(\d{3})\s?(\d{4})
  • (\+\d{2})
    :第一组查找一个子字符串,该子字符串以
    +
    字符开头,后跟2位数字

  • \s?
    :第一组和第二组之间的可选空格

  • (\d{3})
    :第二组查找包含3位数字的子字符串

  • \s?
    :第二组和第三组之间的可选空格

  • (\d{4})
    :第三组查找包含4位数字的子字符串

代码:

并使用
re.sub
强制您的正则表达式中的可选空格成为补全空格:

>>> re.sub(pattern, r'\1 \2 \3', num)
'+91 124 4567'

到目前为止您做了什么?与nltk也没有任何关系……而且,当国家代码超过2位时,它不会产生预期的输出。
>>> re.sub(pattern, r'\1 \2 \3', num)
'+91 124 4567'