Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/17.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 如何从regex.split()获得正确的输出?_Python_Regex - Fatal编程技术网

Python 如何从regex.split()获得正确的输出?

Python 如何从regex.split()获得正确的输出?,python,regex,Python,Regex,我的输入就是输入。当用输入文本调用“process\u numbers”方法时,我得到了当前的\u输出。如何转换到预期输出?您的正则表达式似乎已关闭。您知道\(*检查零个或多个左括号吗 import re number_with_both_parantheses = "(\(*([\d+\.]+)\))" def process_numerals(text): k = re.split(number_with_both_parantheses, text) k = list(

我的输入就是输入。当用输入文本调用“process\u numbers”方法时,我得到了当前的\u输出。如何转换到预期输出?

您的正则表达式似乎已关闭。您知道
\(*
检查零个或多个左括号吗

import re
number_with_both_parantheses = "(\(*([\d+\.]+)\))"

def process_numerals(text):

    k = re.split(number_with_both_parantheses, text)
    k = list(filter(None, k))

    for elem in k:
        print(elem)


INPUT = 'Statement 1 (1) Statement 2 (1.1) Statement 3'
expected_output = ['Statement 1', '(1)' , 'Statement 2', '(1.1)', 'Statement 3']


current_output = ['Statement 1', '(1)' , '1', 'Statement 2', '(1.1)', '1.1' , 'Statement 3']


如果您确实希望包含文字括号,请将它们放在捕获括号内


非捕获括号
(?:…)
允许您在不捕获的情况下进行分组。我想这就是您主要寻找的。您的正则表达式似乎不正确。您是否意识到
\(*
检查零个或多个左括号

import re
number_with_both_parantheses = "(\(*([\d+\.]+)\))"

def process_numerals(text):

    k = re.split(number_with_both_parantheses, text)
    k = list(filter(None, k))

    for elem in k:
        print(elem)


INPUT = 'Statement 1 (1) Statement 2 (1.1) Statement 3'
expected_output = ['Statement 1', '(1)' , 'Statement 2', '(1.1)', 'Statement 3']


current_output = ['Statement 1', '(1)' , '1', 'Statement 2', '(1.1)', '1.1' , 'Statement 3']


如果您确实希望包含文字括号,请将它们放在捕获括号内


非捕获括号
(?:…)
允许您在不捕获的情况下进行分组。我想这就是您主要要寻找的。

([\d+\.]+)
中删除多余的括号,将
编号与两个paranthesis=r一起使用(\(\d+(?:\.\d+)*)”
,请参阅从
([\d+.]中删除多余的括号)
,使用带有“两个”parantesses=r“\(\d+(?:\。\d+*)”的数字“,请参阅