用ch更换管道

2024-09-28 05:24:52 发布

您现在位置:Python中文网/ 问答频道 /正文

我有这个密码:

> list=str(raw_input('Enter pipe seprated list [PRIMARY|SECONDARY]:'))
> n_list="^"+list+"$" 
> print n_list

当我执行它时,它会提示我:

Enter pipe separated list [PRIMARY|SECONDARY]:PRIMARY

如上所述,如果我给出主要结果:

^PRIMARY$

如果将输入作为主要|次要输入:

Enter pipe seprated list [PRIMARY|SECONDARY]:PRIMARY|SECONDARY

我得到的输出是:

^PRIMARY|SECONDARY$

在这里,我想得到如下输出:

^PRIMARY$| ^SECONDARY$如果我输入PRIMARY | SECONDARY。请帮我实现这个目标。你知道吗


Tags: 密码目标inputrawlistprintentersecondary
3条回答

根据|进行拆分,在每个项目的开始和结束处添加^$。然后使用|加入它们。你知道吗

>>> 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$
>>> 

为了完整起见,作为已经提出的split/join解决方案的替代方案,您还可以使用replace$|^|

>>> s = 'PRIMARY|SECONDARY'
>>> '^' + s.replace('|', '$|^') + '$'
'^PRIMARY$|^SECONDARY$'

但是,由于在这个解决方案中必须同时写^$两次,所以我还是更喜欢split/join的方式。你知道吗

另一种解决方案:不用regex '^PRIMARY$|^SECONDARY$',也可以使用'^(PRIMARY|SECONDARY)$'。行为应该是一样的。你知道吗

您必须用|(管道)拆分字符串,并用前缀(^)和后缀($)连接它

l=str(raw_input('Enter pipe seprated list [PRIMARY|SECONDARY]:'))
n_l = "|".join(["^" + l_t + "$" for l_t in l.split('|')])
print n_l

相关问题 更多 >

    热门问题