Python 如何从regex.split()获得正确的输出?
我的输入就是输入。当用输入文本调用“process\u numbers”方法时,我得到了当前的\u输出。如何转换到预期输出?您的正则表达式似乎已关闭。您知道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(
\(*
检查零个或多个左括号吗
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+*)”的数字“,请参阅