[英]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.