我有一个包含多行的文件,如下所示:
'AMS_Investigation|txtt.co_BigtittedBlondOtherNight_1371078139195_+14155186442', {'cf:rv': '0'}
我想用另一个号码代替1371078139195(在本例中)。 我要替换的值始终位于第一个逗号分隔的单词中,并且始终是该单词中最后一个下划线分隔的值。 下面是我做这件事的方式,它很管用,但这似乎不体面和笨拙。在
^{pr2}$有没有更简单的方法来替换(可能使用正则表达式)值?我无法想象这是最好的方法
我有几个答案,我必须强调,这是第二个强调的价值。以下是有效字符串:
line = "'AMS_Investigation|txtt.co_23456_BigtittedBlondOtherNight_1371078139195_+14155186442', {'cf:rv': '0'}"
line = "'AMS_Investigation|txtt.co_23456_BigtittedBlondOtherNight_1371078139195_14155186442', {'cf:rv': '0'}"
line = "'AMS_Investigation|txtt.co_1371078139195_BigtittedBlondOtherNight_1371078139195_1371078139195', {'cf:rv': '0'}"
在上面的情况下,字符串中的数字字符串不在最后第二个下划线之后。最后一部分可能是也可能不是全部数字(可以是+14155186442,也可以是14155186442)。抱歉,我没有在上面提到这个。在
A
像这样?在
使用正则表达式:
意思是
[^,]*_
=需要多少个字符而不是逗号,后跟下划线[+]?[0-9]+
=数字,可以前面加+
_.*
=后面跟着的下划线这是因为regexp匹配在默认情况下是“贪心”的,因此
[^,]*
将实际使用所有下划线,在最后一个匹配成功之前停止。在例如,如果您需要使用分隔开的第二个最后一个下划线,则需要将表达式更改为
^{pr2}$因此,要求在数字之后,逗号前至少有两个下划线。在
非正则表达式解决方案:
功能:
^{pr2}$相关问题 更多 >
编程相关推荐