Python 3.x 需要Python正则表达式替换帮助吗
我可能有以下任何输入字符串-Python 3.x 需要Python正则表达式替换帮助吗,python-3.x,Python 3.x,我可能有以下任何输入字符串- i/p 1) Required 16 pcs i/p 2) Required7 units i/p 3) Requesting 12each o/p 1) Required 16 units o/p 2) Required 7 units o/p 3) Requesting 12 units 我希望进行一些基于正则表达式的替换,以便为上述3个字符串提供以下输出- i/p 1) Required 16 pcs i/p 2) Required7 units i/p
i/p 1) Required 16 pcs
i/p 2) Required7 units
i/p 3) Requesting 12each
o/p 1) Required 16 units
o/p 2) Required 7 units
o/p 3) Requesting 12 units
我希望进行一些基于正则表达式的替换,以便为上述3个字符串提供以下输出-
i/p 1) Required 16 pcs
i/p 2) Required7 units
i/p 3) Requesting 12each
o/p 1) Required 16 units
o/p 2) Required 7 units
o/p 3) Requesting 12 units
基本上,如果我的字符串包含pcs/units/each,以及前面的一个整数,我想执行以下操作-
#1.将字符串“pcs”/“每个”替换为“单位”&
#2.在整数值前后添加空格
我在Python3.8中使用re。我想我可能不得不使用反向引用和编号的捕获组,但无法弄清楚如何才能使这项工作正常进行
import re
txt = '''
Required 16 pcs
Required7 units
Requesting 12each
'''
print( re.sub(r'\s*(\d+)\s*(?:units|each|pcs)', r' \1 units', txt) )
印刷品:
Required 16 units
Required 7 units
Requesting 12 units
印刷品:
Required 16 units
Required 7 units
Requesting 12 units
说明:
-(\S*?)
非空格、非贪婪\S
-捕获组1*?
- 捕获组3是数字
- 替换为第1组,后面是空格的文本,后面是第3组,“each”作为文本。更正缺少的前导/尾随空格。第2组和第4组-可选非贪婪1+空间
-(\S*?)
非空格、非贪婪\S
-捕获组1*?
- 捕获组3是数字
- 替换为第1组,后面是空格的文本,后面是第3组,“each”作为文本。更正缺少的前导/尾随空格。第2组和第4组-可选非贪婪1+空间