Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 3.x 需要Python正则表达式替换帮助吗_Python 3.x - Fatal编程技术网

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+空间