我正在寻找Python3中的一个干净的解决方案来从字符串中剪切子字符串(如内联注释)。但是,如果它是一个奇数个分隔符,那么文本的其余部分将被删除(就像编程行末尾的注释)
输入:
s="abcd;efghij;kl;mn"
输出:
s="abcdkl"
如何以与Java中的.replaceAll类似的方式完成此操作
答案 0 :(得分:2)
@Marcel ,因为您对 @Kasramvd 建议的上述方法感到满意,这很好,我想建议您使用{编写一个简单的小函数{1}}关键字。
使用新参数多次调用它并获得输出,如下面的代码所示。
访问并查看https://www.python-course.eu/lambda.php以获取详细示例。
有关简要知识,请参阅Python lambda function。
lambda
答案 1 :(得分:1)
如果您只有两个分隔符,则可以使用str.split()
,如下所示:
In [15]: sp = s.split(';')
In [18]: result = sp[0] + sp[-1]
In [19]: result
Out[19]: 'abcdklmn'
否则,根据您的字符串和预期结果,您可以使用正则表达式来查找所需的子字符串。
演示:
In [25]: s
Out[25]: 'abcd;efghij;klmn'
In [26]: re.sub(r'(;[^;]*)?;', '', s)
Out[26]: 'abcdklmn'
In [27]: s="abcd;klmn"
In [28]: re.sub(r'(;[^;]*)?;', '', s)
Out[28]: 'abcdklmn'
答案 2 :(得分:1)
您可以使用正则表达式执行此操作:
import re
delimiters = ';'
s = 'fsdfsd;sfdsfd;ffs'
reg_exp = "[" + delimiters + "].*[" + delimiters + "]"
new_s = re.sub(reg_exp, "", s)
print (new_s)