111111 | 1234 | 99 | 777
22222/17/4321/222
333333\u 333\u 3333\u 33
4444-444-44-4444
5555 | 55 | 5555 | 555
如何将此结果排序为:
111111 | 1234 | 99 | 777
2222222 | 4321 | 17 | 222
333 | 3333 | 33 | 333
4444 | 4444 | 44 | 444
5555 | 5555 | 55 | 555
>>> s = '111111|1234|99|777\n222222/17/4321/222\n333333_333_3333_33\n444444-444-44-4444\n555555 | 55 | 5555 | 555'
>>> p = re.compile(r'\d{6}[\||/|_|\-](?:\d{4}|\d{3}|\d{2})[\||/|_|\-](?:\d{4}|\d{3}|\d{2})[\||/|_|\-](?:\d{4}|\d{3}|\d{2})')
>>> print re.sub('[/|_-]','|',s)
111111|1234|99|777
222222|17|4321|222
333333|333|3333|33
444444|444|44|4444
555555 | 55 | 5555 | 555
如何像sed一样在python中打印\1\2?你知道吗
root@localhost:~# echo abc | sed -r 's/(a)(b)c/\1\2/'
ab
我假设您了解一点python并可以将其存储在其他变量中。你知道吗
要跳过
\
分隔符,只需像Python中的\\
一样使用它(在一般编程语言中)。你知道吗使用python和
re
模块,确实可以使用组并将组i的内容与\i
匹配。但是,对于您的应用程序,我建议您使用可读性更强的正则表达式来查找正好有6、4、3和2位的数字。然后可以重新排列它们以产生预期的输出,如下所示,只需两行代码:相关问题 更多 >
编程相关推荐