Products
GG网络技术分享 2025-03-18 16:15 3
如何通过re用一行代码将20221012变为2022-10-12,python解决
固定位置插入字符-不就完了
代码如下,如有帮助请点击一下采纳谢谢:
import re
text = "20221012"def fp(r):
return "{:0>2}-{:0>2}-{:4}".format(r.group(1),r.group(2),r.group(3))
text = re.sub(r'(\\d{4})(\\d{1,2})(\\d{1,2})',fp,text)
print(text)
这个杂谈会比较简单,但是主要说的是VisualStudio里面的正则操作,没学过正则表达式的我推荐下面这个网址作为入门教程:
今天需要些四阶矩阵的乘法,学过线性代数的人大概都知道这东西理解不难,但是当你上手写代码的时候,我敢保证,你会脑子瞬间短路。
先看最终的代码
看上去没啥,但是真正编码的时候就很难操作,因为重复输入太多,不停的重复输入x.M11 * y.M12很快你就会发现你无法保证没有错误的输入。
为了避免大量的重复操作,我要介绍一个用的比较多操作,正则替换。反正也不算是什么新鲜操作。但是一旦碰到这种鬼编码需求的话,使用正则替换会让你的编码工作变得稍微轻松一些。
VisualStudio正则匹配与替换
VisualStudio本身是支持正则匹配的,相信大家都知道,虽然正则大部分时候只用于匹配,但是它也可以用于替换。
首先正则替换的基础是正则匹配,如果不懂,请看页首的推荐教程。如果已经有基础了,那么请你关注一下一个概念:
匹配组(Match Group)
VisualStudio中的正则替换主要依赖匹配组实现的,在正则里面,一个正常的括号里面就表明则是一个匹配组了。在VisualStudio中匹配组的序号从1开始,多个匹配组的序号依次递增1,使用如下方式
$<number>
可以使用匹配组的内容替换指定位置,number为匹配组的序号
演示
我的匹配模板如下
//M11,M11,M11,M12,M21,M13,M31,M14,M41
匹配用的正则表达式为:
//(M\\d{2}),(M\\d{2}),(M\\d{2}),(M\\d{2}),(M\\d{2}),(M\\d{2}),(M\\d{2}),(M\\d{2}),(M\\d{2})
替换用的表达式为:
$1 = x.$2 * y.$3 + x.$4 * y.$5 + x.$6 * y.$7 + x.$8 * y.$9
最终替换生成的结果为:
M11 = x.M11 * y.M11 + x.M12 * y.M21 + x.M13 * y.M31 + x.M14 * y.M41
新版本Visual Studio对于后向引用的支持并不友好(不能用?),我以前用VS2013还是VS2015的时候还可以支持后向引用,新版本不清楚是不是使用方式变了,如果有谁知道麻烦评论告知一声。
(写了一个四阶矩阵之后我感觉我头发都秃了,虽然不难)
Demand feedback