簡體   English   中英

Python在字符前后搜索/提取字符串

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

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