Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/339.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/perl/9.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中正确使用正则表达式的子函数?_Python_Regex_String - Fatal编程技术网

如何在Python中正确使用正则表达式的子函数?

如何在Python中正确使用正则表达式的子函数?,python,regex,string,Python,Regex,String,所以我有一个像7.50x,我想把它转换成7.5x。我考虑过使用正则表达式。我可以很容易地匹配这个表达式,例如使用re.search('[0-9].[0-9]0x',string)。但是,我不知道如何使用re.sub方法替换每个这样的数字。例如,第二个参数应该是什么 re.sub('[0-9].[0-9]0x', ?, string) 测试 >>> import re >>> num="7.50x" >>> re.sub(r'([0-9]\.

所以我有一个像
7.50x
,我想把它转换成
7.5x
。我考虑过使用正则表达式。我可以很容易地匹配这个表达式,例如使用
re.search('[0-9].[0-9]0x',string)
。但是,我不知道如何使用
re.sub
方法替换每个这样的数字。例如,第二个参数应该是什么

re.sub('[0-9].[0-9]0x', ?, string)
测试

>>> import re
>>> num="7.50x"
>>> re.sub(r'([0-9]\.[0-9])0x', r'\1x', num)
'7.5x'
  • r'\1x'
    此处
    \1
    是从第一个捕获组
    ([0-9]\.[0-9])保存的值。

    例如,对于输入
    7.50x
    ,捕获组匹配保存在
    \1
    中的
    7.5

测试

>>> import re
>>> num="7.50x"
>>> re.sub(r'([0-9]\.[0-9])0x', r'\1x', num)
'7.5x'
  • r'\1x'
    此处
    \1
    是从第一个捕获组
    ([0-9]\.[0-9])保存的值。

    例如,对于输入
    7.50x
    ,捕获组匹配保存在
    \1
    中的
    7.5

测试

>>> import re
>>> num="7.50x"
>>> re.sub(r'([0-9]\.[0-9])0x', r'\1x', num)
'7.5x'
  • r'\1x'
    此处
    \1
    是从第一个捕获组
    ([0-9]\.[0-9])保存的值。

    例如,对于输入
    7.50x
    ,捕获组匹配保存在
    \1
    中的
    7.5

测试

>>> import re
>>> num="7.50x"
>>> re.sub(r'([0-9]\.[0-9])0x', r'\1x', num)
'7.5x'
  • r'\1x'
    此处
    \1
    是从第一个捕获组
    ([0-9]\.[0-9])保存的值。

    例如,对于输入
    7.50x
    ,捕获组匹配保存在
    \1
    中的
    7.5

试试这个。看演示

试试这个。看演示

试试这个。看演示

试试这个。看演示


使用正向的前向和后向断言

>>> import re
>>> num="7.50x"
>>> re.sub(r'(?<=\d\.\d)0(?=x)', r'', num)
'7.5x'
>>重新导入
>>>num=“7.50x”

>>>re.sub(r’(?使用正向的前向和后向断言

>>> import re
>>> num="7.50x"
>>> re.sub(r'(?<=\d\.\d)0(?=x)', r'', num)
'7.5x'
>>重新导入
>>>num=“7.50x”

>>>re.sub(r’(?使用正向的前向和后向断言

>>> import re
>>> num="7.50x"
>>> re.sub(r'(?<=\d\.\d)0(?=x)', r'', num)
'7.5x'
>>重新导入
>>>num=“7.50x”

>>>re.sub(r’(?使用正向的前向和后向断言

>>> import re
>>> num="7.50x"
>>> re.sub(r'(?<=\d\.\d)0(?=x)', r'', num)
'7.5x'
>>重新导入
>>>num=“7.50x”


>>>re.sub(r'(?你能解释r'\1x'真正的意思吗?@metallicprade我已经编辑了答案。希望你能明白这是非常棒的。Thanx是答案。我想把偏执放在[0-9]。[0-9]必须在这里,以便可以将其视为第一个元素\1。由此,我还推断捕获组的索引从1开始,而不是从0开始。对吗?@MetallicPrist你太棒了!!!捕获组是那些被困在妄想症中的组。当然,它们从1开始。它们也从左到右编号。希望你也得到了:)你一定要避开这个点。你能解释一下r'\1x'到底是什么意思吗?@MetallicPrist我已经编辑了答案。希望你明白这太棒了。答案是Thanx。我想把偏执放在[0-9]。[0-9]必须在这里,以便可以将其视为第一个元素\1。由此,我还推断捕获组的索引从1开始,而不是从0开始。对吗?@MetallicPrist你太棒了!!!捕获组是那些被困在妄想症中的组。当然,它们从1开始。它们也从左到右编号。希望你也得到了:)你一定要避开这个点。你能解释一下r'\1x'到底是什么意思吗?@MetallicPrist我已经编辑了答案。希望你明白这太棒了。答案是Thanx。我想把偏执放在[0-9]。[0-9]必须在这里,以便可以将其视为第一个元素\1。由此,我还推断捕获组的索引从1开始,而不是从0开始。对吗?@MetallicPrist你太棒了!!!捕获组是那些被困在妄想症中的组。当然,它们从1开始。它们也从左到右编号。希望你也得到了:)你一定要避开这个点。你能解释一下r'\1x'到底是什么意思吗?@MetallicPrist我已经编辑了答案。希望你明白这太棒了。答案是Thanx。我想把偏执放在[0-9]。[0-9]必须在这里,以便可以将其视为第一个元素\1。由此,我还推断捕获组的索引从1开始,而不是从0开始。对吗?@MetallicPrist你太棒了!!!捕获组是那些被困在妄想症中的组。当然,它们从1开始。它们也从左到右编号。希望你也得到了:)你必须避开这个点。我的问题不是如何搜索它,而是如何替换它。我的问题不是如何搜索它,而是如何替换它。我的问题不是如何搜索它,而是如何替换它。我的问题不是如何搜索它,而是如何替换它。