我有这段代码:
> list=str(raw_input('Enter pipe seprated list [PRIMARY|SECONDARY]:'))
> n_list="^"+list+"$"
> print n_list
当我执行它时,它会提示我:
输入管道分隔列表[PRIMARY | SECONDARY]:PRIMARY
如上所述,如果我给PRIMARY,它会给我结果:
^ PRIMARY $
并且如果将输入提供为PRIMARY | SECONDARY:
输入管道分类列表[PRIMARY | SECONDARY]:PRIMARY | SECONDARY
我得到的输出为:
^ PRIMARY | SECONDARY $
这里我希望输出为:
^ PRIMARY $ | ^ SECONDARY $ 如果我输入 PRIMARY | SECONDARY 。请帮助我实现这一目标。
答案 0 :(得分:2)
根据|
进行拆分,在每个项目的开头和结尾添加^
和$
。然后使用|
加入他们。
>>> s = 'PRIMARY|SECONDARY'
>>> print '|'.join(['^' + i + '$' for i in s.split('|')])
^PRIMARY$|^SECONDARY$
>>> s = 'PRIMARY'
>>> print '|'.join(['^' + i + '$' for i in s.split('|')])
^PRIMARY$
>>> s = 'PRIMARY|SECONDARY|TERTIARY'
>>> print '|'.join(['^' + i + '$' for i in s.split('|')])
^PRIMARY$|^SECONDARY$|^TERTIARY$
>>>
答案 1 :(得分:1)
你必须用|
(管道)拆分你的字符串,并用前缀(^)和后缀($)
l=str(raw_input('Enter pipe seprated list [PRIMARY|SECONDARY]:'))
n_l = "|".join(["^" + l_t + "$" for l_t in l.split('|')])
print n_l
答案 2 :(得分:0)
为了完整起见,作为已提出的aiohttp.web
/ split
解决方案的替代方案,您也可以join
replace
与|
:< / p>
$|^
但是,由于在此解决方案中您必须同时编写>>> s = 'PRIMARY|SECONDARY'
>>> '^' + s.replace('|', '$|^') + '$'
'^PRIMARY$|^SECONDARY$'
和^
两次,我仍然会更喜欢$
/ split
方式。
另一种解决方案:您也可以使用join
,而不是使用正则表达式'^PRIMARY$|^SECONDARY$'
。行为应该是一样的。