如何在找到所需的第一个字符后停止搜索并复制其余文本?

2024-06-06 16:04:05 发布

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

我有一个具有CUSTOMER_SEGMENT_PRIV的字符串,希望得到CUSTOMER_SEGMENT equal to PRIV的输出

>>> re.sub('_{1}',' ot lauqe ','CUSTOMER_SEGMENT_PRIV'[::-1])[::-1]
'CUSTOMER equal to SEGMENT equal to PRIV'
>>> re.sub('((?:_[^_\r\n]*){1})$',' ot lauqe ','CUSTOMER_SEGMENT_PRIV'[::-1])[::-1]
'CUSTOMER equal to SEGMENT equal to PRIV'

我想要的是:

'CUSTOMER_SEGMENT equal to PRIV'

Tags: to字符串resegmentcustomerequalotpriv
2条回答

无需使用regex,只需将^{}maxsplit=1str.join一起使用即可:

>>> s = 'CUSTOMER_SEGMENT_PRIV'
>>> x = s.rsplit('_', 1)
>>> x
['CUSTOMER_SEGMENT', 'PRIV']
>>> ' equal to '.join(x)
'CUSTOMER_SEGMENT equal to PRIV'

使用好的正则表达式的一种简单方法:

>>> import re
>>> re.sub( r'_([^_\r\n]*)$', ' equal to \\1', 'CUSTOMER_SEGMENT_PRIV' )
'CUSTOMER_SEGMENT equal to PRIV'

相关问题 更多 >