我正在解析一些数据......看起来像这样
Fourier analysis for v(1):
No. Harmonics: 20, THD: 24.6928 %, Gridsize: 200, Interpolation Degree: 1
Harmonic Frequency Magnitude Phase Norm. Mag Norm. Phase
-------- --------- --------- ----- --------- -----------
0 0 -1.4108e-005 0 0 0
1 100 1.81678 179.986 1 0
2 200 2.67431e-005 -89.68 1.472e-005 -269.67
3 300 0.374737 179.937 0.206264 -0.049661
4 400 2.57338e-005 -89.357 1.41645e-005 -269.34
5 500 0.185804 179.876 0.102271 -0.1108
6 600 2.46676e-005 -89.033 1.35777e-005 -269.02
7 700 0.112225 179.799 0.0617716 -0.18748
8 800 2.37755e-005 -88.71 1.30866e-005 -268.7
9 900 0.0757484 179.708 0.0416937 -0.27803
10 1000 2.31014e-005 -88.392 1.27156e-005 -268.38
11 1100 0.0558207 179.611 0.0307251 -0.37527
12 1200 2.25406e-005 -88.082 1.24069e-005 -268.07
13 1300 0.0439558 179.513 0.0241943 -0.47325
14 1400 2.19768e-005 -87.779 1.20966e-005 -267.77
15 1500 0.0362049 179.416 0.019928 -0.5704
16 1600 2.13218e-005 -87.483 1.1736e-005 -267.47
17 1700 0.0305653 179.316 0.0168239 -0.67046
18 1800 2.0553e-005 -87.194 1.13128e-005 -267.18
19 1900 0.0260612 179.207 0.0143447 -0.77967
我们有几个地方有一些浮动数据。我可以为float创建一个正则表达式,这里是该行的re的一部分。
(?P<Magnitude>[-+]?(?:(?:\d*\.\d+)|(?:\d+\.?))(?:[Ee][+-]?\d+)?)
这部分[-+]?(?:(?:\d*\.\d+)|(?:\d+\.?))(?:[Ee][+-]?\d+)?
非常复杂,所以如果有某种方法可以将其命名并重复使用它会很好...有点像你可以命名我们自己的元字符并用{替换它{1}}或其他东西(即如果这是浮动的元字符,它不是......)。按照他们的方式,我从this question得到了这个。
所以我正在寻找一种包含这种复杂性的好方法。我可能在模式字符串上使用字符串连接或格式化,但我想知道是否有更好的方法。也许我错过了一些明显的东西。
这是一个笨拙的表达
\f+
答案 0 :(得分:1)
对于具有重复部分的这些较大的正则表达式,我倾向于有一组正则表达式的列表,然后以编程方式将它们全部合并为一个。
所以在JavaScript中:
PreparedStatement
有点简陋,但你明白了。这样可以更容易地重用正则表达式代码,并以更易读的方式进行排列。