正则表达式正向搜索结果中仍包括表达式

问题描述 投票:0回答:1

这是我的正则表达式。

'(?<=1\)).*'

我正在尝试匹配

良好的战略是使公司能够实现自身内部目标而无需考虑外部环境的一系列行动。

但是它总是返回1),我不希望它像这样。

1)好的策略是使公司能够在不考虑外部环境的情况下实现自身内部目标的一系列行动。

我如何只退回问题?

编辑:由于无法复制我的错误,我正在共享完整的代码。

searchCounter = 1

bookDict = {}

with open ('StratMasterKey.txt', 'rt') as myfile:

for line in myfile:
    question_pattern = re.compile((rf'(?<={searchCounter}\)).*'), re.IGNORECASE)
    if question_pattern.search(line) != None: 

        bookDict[searchCounter] = line 
        searchCounter +=1
python regex regex-lookarounds
1个回答
0
投票
您的正则表达式很好,并且与正确的事物匹配。问题在于,在对它进行匹配测试之后,您将使用原始行而不是匹配部分。改为执行此操作:

searchCounter = 1 bookDict = {} with open ('StratMasterKey.txt', 'rt') as myfile: for line in myfile: question_pattern = re.compile((rf'(?<={searchCounter}\)).*'), re.IGNORECASE) result = question_pattern.search(line) if result != None: bookDict[searchCounter] = result[0] searchCounter +=1

© www.soinside.com 2019 - 2024. All rights reserved.