使用regex-Python-RE在三位数后添加空格
我有一个值为:+911244567的文本,我想在124之后添加一个空格,因此预期结果将为:+911244567 注意:输入可以是具有给定格式的任何数字。 我想在python 3.6中使用正则表达式执行此操作 提前谢谢使用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)三位数字替换
>>> 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?
:第二组查找包含3位数字的子字符串(\d{3})
:第二组和第三组之间的可选空格\s?
:第三组查找包含4位数字的子字符串(\d{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'