簡體   English   中英

在特定字符串Python之前檢索文本

[英]Retrieve text before specific string Python

我想使用Python中的regex檢索文本文件中特定字符串之前的所有內容。 例如與線

text = 'What I want is a red car'

我想檢索“紅色汽車”之前的所有內容,即:

result = 'What I want is'

整個字符串“一輛紅色汽車”很重要,而不僅僅是“紅色”或“汽車”分別!

提前致謝!

如果您需要為此使用正則表達式:

regex = re.compile('(?P<before_red_car>.+) a red car')
regex.search("What i want is a red car").group('before_red_car')

如果您不想命名群組:

regex = re.compile('(.+)a red car')
regex.search("What i want is a red car").group(1) 

如果需要捕獲所有內容,包括換行符,請添加re.DOTALL標志。

但是,這樣做

text = 'What I want is a red car'
text.split('a red car')[0]

甚至 :

text = 'What I want is a red car'
text.replace('a red car', '')

也可以工作,並且說起來更容易理解。 它們也快了兩倍:

timeit.timeit(lambda: text.split('a red car')[0])
0.5350678942020507

timeit.timeit(lambda: text.replace('a red car', ''))
0.5115460171814448

timeit.timeit(lambda: regex.search("What i want is a red car").group(1))
1.123993800741033 

# Without re.compile()
timeit.timeit(lambda: re.search('(.+)a red car', text).group(1))
1.94518623436079

這可能有幫助

text = 'What I want is a red car'
print(text[0:13])

您可以嘗試以下方法:

strIn = 'What I want is a red car'
searchStr = 'a red car'
print(strIn[:strIn.find(searchStr)])

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM