Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/284.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 如何识别字符串中的x;x形密封圈10.00x10.00mm“;并将其替换为一个空格_Python_Replace_Token - Fatal编程技术网

Python 如何识别字符串中的x;x形密封圈10.00x10.00mm“;并将其替换为一个空格

Python 如何识别字符串中的x;x形密封圈10.00x10.00mm“;并将其替换为一个空格,python,replace,token,Python,Replace,Token,晚上好, 我正在尝试编写一个脚本,该脚本将识别字符串中的维度(例如:10x10x12或25X35X4 G),并将自动用空格替换x。因此,结果将是1012或25354 我正在搜索的字符串将包含更多信息,其中还可能包含不应替换的x 我迷失在如何实现这一点上,希望有人知道我如何解决这个问题 使用re模块中的正则表达式 import re def repl_dim(m): return " ".join(m.groups()) s = "some xXx dim: 10x10x12, 25X

晚上好,

我正在尝试编写一个脚本,该脚本将识别字符串中的维度(例如:10x10x12或25X35X4 G),并将自动用空格替换x。因此,结果将是1012或25354

我正在搜索的字符串将包含更多信息,其中还可能包含不应替换的x


我迷失在如何实现这一点上,希望有人知道我如何解决这个问题

使用
re
模块中的正则表达式

import re

def repl_dim(m):
    return " ".join(m.groups())

s = "some xXx dim: 10x10x12, 25X35X4"

print re.sub("(\d+)x(\d+)x(\d+)", repl_dim, s, flags=re.IGNORECASE)
印刷品

一些xXx尺寸:10101225354

使用
re
模块中的正则表达式

import re

def repl_dim(m):
    return " ".join(m.groups())

s = "some xXx dim: 10x10x12, 25X35X4"

print re.sub("(\d+)x(\d+)x(\d+)", repl_dim, s, flags=re.IGNORECASE)
印刷品

一些xXx尺寸:10101225354

检查
x
前面是否有数字就足够了:

import re

print(re.sub("(?<=\d)x", " ", "foox barx 10x10x12"),re.I)
foox barx 10 10 12
重新导入

打印(re.sub)(?检查
x
前面是否有数字就足够了:

import re

print(re.sub("(?<=\d)x", " ", "foox barx 10x10x12"),re.I)
foox barx 10 10 12
重新导入

打印(re.sub)((?如果后面跟一个数字,则替换x/x)

>>> s = '1x2X3, 10x10x12, 25X35X4 G, XXX expert, 3x world champ, great x2'
>>> import re
>>> re.sub(r'(?<=\d)x(?=\d)', ' ', s, flags=re.I)
'1 2 3, 10 10 12, 25 35 4 G, XXX expert, 3x world champ, great x2'
>>s='1x2X3,10x10x12,25X35X4克,XXX专家,3倍世界冠军,伟大的x2'
>>>进口稀土

>>>re.sub(r’(?如果后面跟一个数字,则替换x/x)

>>> s = '1x2X3, 10x10x12, 25X35X4 G, XXX expert, 3x world champ, great x2'
>>> import re
>>> re.sub(r'(?<=\d)x(?=\d)', ' ', s, flags=re.I)
'1 2 3, 10 10 12, 25 35 4 G, XXX expert, 3x world champ, great x2'
>>s='1x2X3,10x10x12,25X35X4克,XXX专家,3倍世界冠军,伟大的x2'
>>>进口稀土

>>>re.sub(r’(?您可以使用带有lookback和backreference的正则表达式:

>>> import re
>>> s = 'x-ring closing10.00x10.00mm'
>>> s2 = 'x-ring closing10.00x10.00x5.00mm'
>>> s3 = 'dimensions 1 x 4 x3'
>>> re.sub(r'((?<=\d))\s*[xX]\s*(\d)', r'\1 \2', s)
'x-ring closing10.00 10.00mm'
>>> re.sub(r'((?<=\d))\s*[xX]\s*(\d)', r'\1 \2', s2)
'x-ring closing10.00 10.00 5.00mm'
>>> re.sub(r'((?<=\d))\s*[xX]\s*(\d)', r'\1 \2', s3)
'dimensions 1 4 3'
>>重新导入
>>>s='x形环闭合10.00x10.00mm'
>>>s2='x形密封圈10.00x10.00x5.00mm'
>>>s3=‘尺寸1 x 4 x3’

>>>re.sub(r’(?您可以使用带有lookback和backreference的正则表达式:

>>> import re
>>> s = 'x-ring closing10.00x10.00mm'
>>> s2 = 'x-ring closing10.00x10.00x5.00mm'
>>> s3 = 'dimensions 1 x 4 x3'
>>> re.sub(r'((?<=\d))\s*[xX]\s*(\d)', r'\1 \2', s)
'x-ring closing10.00 10.00mm'
>>> re.sub(r'((?<=\d))\s*[xX]\s*(\d)', r'\1 \2', s2)
'x-ring closing10.00 10.00 5.00mm'
>>> re.sub(r'((?<=\d))\s*[xX]\s*(\d)', r'\1 \2', s3)
'dimensions 1 4 3'
>>重新导入
>>>s='x形环闭合10.00x10.00mm'
>>>s2='x形密封圈10.00x10.00x5.00mm'
>>>s3=‘尺寸1 x 4 x3’

>>>re.sub(r'((?
将包含更多信息,其中可能包含不应替换的x。
您的意思是只应替换大写字母
x
?请详细说明并提供完整示例。
将包含更多信息,其中也可能包含不应替换的x。
您的意思是只应替换大写字母
>X
应该被替换?请详细说明并提供一个完整的例子来解释迂腐:是
后面跟一个数字
还是
后面跟一个数字
?数字,还是两者都有,取决于你的意思。数字是由数字组成的(从视觉上看)。您在评论中回答了,我认为它至少是一个数字。upvoted这对我的数据集非常有效,所以非常感谢!请原谅迂腐:是
后跟一个数字
还是
后跟一个数字
?数字,还是两者都有,取决于您的意思。数字是由数字组成的(从视觉上讲)。您在评论中回答了,我认为它至少有一个数字。Upvoted这对我的数据集非常有效,所以非常感谢!这个解决方案很聪明,只要看看x前面是否有一个数字。它还将
foo 10xbar
替换为
foo 10 bar
@gre\u gor,您在输入中看到了什么,或者为什么你认为它会在那里吗?你的正则表达式检查三位数字,如果只有两位“3x世界冠军”,“P90x很棒”@StefanPochmann,那么就这样试试
s=“some xXx dim:10x12,25X35X4 p90x3”
使用您自己的正则表达式,我们都可以找到打破正则表达式的方法,这就是为什么让OP,即拥有数据的人来决定什么是有效的这个解决方案是聪明的,只要看看x前面是否有一个数字。这也将
foo 10xbar
替换为
foo 10 bar
@gre\u gor,您在输入中看到了什么,或者您为什么要这样做你认为会有吗?你的正则表达式检查三位数,如果只有2个“3x世界冠军”,“P90x很棒”@StefanPochmann,那么在这种情况下试试
s=“some xXx dim:10x12,25X35X4 p90x3”
使用您自己的正则表达式,我们都可以找到打破正则表达式的方法,这就是为什么让OP,即拥有数据的人来决定什么是有效的