Python regex。我试图在某个单词(Total_Cases)之后的任何单词的第一次出现时删除文本。

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

所以在这种情况下,从单词Star(可以是任何单词!)开始,在单词(Total_Cases)后面的所有内容都被删除。

test1 = '/nOpenCases -  4  -   -   -  4  /nClosed_Cases 6  -  -  -  - 6  /nTotal_Cases 3  4 -  -  - 7  Rocket Star Services Limited Term Disability FLK1234567 As Of 12/21/2023 property of xyz. Use and distribution limited solely to personnel. © Copyright 2020 Rocket Corporation) 9 of 15  Created: 3:20 PM - 1/21/2020'

我想。

'/nOpenCases -  4  -   -   -  4  /nClosed_Cases 6  -  -  -  - 6  /nTotal_Cases 3 4 -  -  - 7 

我已经试过了

re.sub('(?<=Total_Claims)(.*)',"", test1)

但这个结果是-

'/nOpenCases -  1  -   -   -  1  /nClosed_Cases 3  -  -  -  - 3  /nTotal_Cases

这个也会删除数字......

python regex
1个回答
1
投票

你可以使用

result = re.sub(r'(Total_Cases[^a-zA-Z]*).*', r'\1', test1, flags=re.S).rstrip()

搜索引擎演示

详细内容

  • (Total_Cases[^a-zA-Z]*) - 捕捉到第1组。Total_Cases 然后捕捉除ASCII字母以外的任何0或更多的字符。
  • .* - 字符串末尾的任何0或更多的字符(flags=re.S 使得 . 以匹配跨行的换行符)。)

\1 中的替换模式指的是组1的值。.rstrip() 将删除所有尾部的空格(如果不需要,请删除)。

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