需要帮助在python
中使用正则表达式提取字符前后的字符串string = "My City | August 5"
我想提取"My City"
并提取"August 5"
string1 = "My City"
string2 = "August 5"
答案 0 :(得分:3)
这里不需要正则表达式,只需使用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('|'))
答案 1 :(得分:2)
这里你不需要正则表达式。只需输入
即可string = "My City | August 5"
string1, string2 = string.split("|")
如果要裁剪结果中的尾随空格,可以使用
string1 = string1.strip(" ")
string2 = string2.strip(" ")
答案 2 :(得分:1)
当然,这是一个用于拆分字符串的内置方法:
string = "My City | August 5"
delimiter = ' | ' # note the spaces are part of your delimiter
list_of_partial_strings = string.split(delimiter)
Python Standard Library documentation中有关于字符串方法的优秀文档。
答案 3 :(得分:1)
通过正则表达式,就像
>>> import re
>>> string = "My City | August 5"
>>> string1, string2 = re.split(r'\s+\|\s+', string)
>>> string1
'My City'
>>> string2
'August 5'
\s+
匹配一个或多个空格字符,\|
匹配文字|
符号。您必须转义正则表达式中的|
以匹配文字|
符号,因为|
管道是正则表达式中的特殊元字符,通常称为交替运算符或逻辑OR运算符。