我试图使用regex查找并替换字符串中的第二个制表符。在
booby = 'Joe Bloggs\tNULL\tNULL\tNULL\tNULL\tNULL\tNULL\tNULL\tNULL\r\n'
这很好:
^{pr2}$此用于查找第二个制表符的正则表达式未按预期工作:
re.sub(r'(\t[^\t]*)\t',r'###', booby)
我得到的不是匹配和替换第二个选项卡,而是返回:
'###NULL\tNULL\tNULL\tNULL\tNULL\tNULL\tNULL\r\n'
我尝试过在r“”前面加上或不加上r“”,也确认了正则表达式在regex101.com上可以正常工作
编辑:我把原来的正则表达式换成了glibdud的高级正则表达式
带正则表达式
这是我能找到的最短的正则表达式:
它使用非贪心的
^{pr2}$.
来确保它不会产生太多的标签。 It输出:使用拆分和合并
如果其他索引需要正则表达式,它可能会变得难看。对于一般情况,可以使用}:
split
和{It输出:
^{pr2}$你可能想得太多了。在
只需将选项卡的第一个实例与任意数量的非选项卡后跟一个选项卡相匹配,然后将其替换为除最后一个选项卡之外的所有内容以及任何要替换它的内容。在
你就快到了,在
###
之前加上\1
我提供了另一种解决方法,原因是:
^{pr2}$相关问题 更多 >
编程相关推荐