[英]Python search / extract string before and after a character
在python中使用正則表達式提取字符前后的字符串時需要幫助
string = "My City | August 5"
我想提取"My City"
並提取"August 5"
string1 = "My City"
string2 = "August 5"
您在這里不需要正則表達式,只需使用str.partition()
,在|
拆分即可。 加上周圍的空間:
string1, separator, string2 = string.partition(' | ')
演示:
>>> string = "My City | August 5"
>>> string.partition(' | ')
('My City', ' | ', 'August 5')
>>> string1, separator, string2 = string.partition(' | ')
>>> string1
'My City'
>>> string2
'August 5'
str.partition()
將字符串分割一次 ; 如果還有更多|
這些字符作為string2
一部分保留。
如果你想多一點健壯和處理任何數量的周圍管道符號空間,你只能分割上|
並使用str.strip()
從兩個字符串的開頭和結尾刪除任意數量的空格:
string1, separator, string2 = map(str.strip, string.partition('|'))
您在這里不需要正則表達式。 只需輸入
string = "My City | August 5"
string1, string2 = string.split("|")
如果要在結果中裁剪尾隨空間,可以使用
string1 = string1.strip(" ")
string2 = string2.strip(" ")
當然,這是分割字符串的內置方法:
string = "My City | August 5"
delimiter = ' | ' # note the spaces are part of your delimiter
list_of_partial_strings = string.split(delimiter)
Python標准庫文檔中提供了有關字符串方法的出色文檔 。
通過正則表達式,就像
>>> import re
>>> string = "My City | August 5"
>>> string1, string2 = re.split(r'\s+\|\s+', string)
>>> string1
'My City'
>>> string2
'August 5'
\\s+
匹配一個或多個空格字符, \\|
匹配文字|
符號。 您必須逃脫|
在正則表達式中以匹配文字|
符號,因為|
管道是正則表達式中的特殊元字符,通常稱為交替運算符或邏輯OR運算符。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.