我有一些文本我想操作和替換一些行,但是我在獲取所有我需要的匹配項時遇到了一些問題。我只想匹配第二個文本塊中的行。一些數字可以改變,但 GRP 200 和 GRP 300 是固定的。
示例文本:
SAR - GRP 200 T 0.300000 MNO 1 MRF 2 DRX 0.000000 0.000000 -1.000000 NX -1.000000 0.000000 0.000000 H1 0.15
SARB OUT
SLNB X1 0.00000000 -6.00000000 2.00000000 X2 0.00000000 -6.00000000 2.10000000
SARB OUT
SLNB X1 0.00000000 -6.00000000 2.10000000 X2 0.00000000 6.00000000 2.10000000
SARB OUT
SLNB X1 0.00000000 6.00000000 2.10000000 X2 0.00000000 6.00000000 2.00000000
SARB OUT
SLNB X1 0.00000000 6.00000000 2.00000000 X2 0.00000000 -6.00000000 2.00000000
SAR - GRP 200 T 0.300000 MNO 1 MRF 2 DRX 0.000000 0.000000 -1.000000 NX -1.000000 0.000000 0.000000 H1 0.15
SARB OUT
SLNB X1 0.00000000 -6.00000000 0.00000000 X2 0.00000000 -6.00000000 2.00000000
SARB OUT
SLNB X1 0.00000000 -6.00000000 2.00000000 X2 0.00000000 6.00000000 2.00000000
SARB OUT
SLNB X1 0.00000000 6.00000000 2.00000000 X2 0.00000000 6.00000000 0.00000000
SARB OUT
SLNB X1 0.00000000 6.00000000 0.00000000 X2 0.00000000 -6.00000000 0.00000000
SAR - GRP 300 T 0.600000 MNO 1 MRF 2 DRX 0.000000 0.000000 -1.000000 NX 0.000000 -1.000000 0.000000 H1 0.15
SARB OUT
SLNB X1 0.00000000 3.00000000 1.80000000 X2 0.00000000 3.00000000 0.00000000
SARB OUT
SLNB X1 0.00000000 3.00000000 0.00000000 X2 -2.45000000 3.00000000 0.00000000
SARB OUT
SLNB X1 -2.45000000 3.00000000 0.00000000 X2 -0.30000000 3.00000000 1.80000000
SARB OUT
SLNB X1 -0.30000000 3.00000000 1.80000000 X2 0.00000000 3.00000000 1.80000000
SAR - GRP 300 T 0.600000 MNO 1 MRF 2 DRX 0.000000 0.000000 -1.000000 NX 0.000000 1.000000 0.000000 H1 0.15
SARB OUT
SLNB X1 0.00000000 -3.00000000 1.80000000 X2 0.00000000 -3.00000000 0.00000000
SARB OUT
SLNB X1 0.00000000 -3.00000000 0.00000000 X2 -2.45000000 -3.00000000 0.00000000
SARB OUT
SLNB X1 -2.45000000 -3.00000000 0.00000000 X2 -0.30000000 -3.00000000 1.80000000
SARB OUT
SLNB X1 -0.30000000 -3.00000000 1.80000000 X2 0.00000000 -3.00000000 1.80000000
SAR - GRP 100 T 0.400000 MNO 1 MRF 2 NX 0.000000 0.000000 1.000000 H1 0.2 CB 15000 CT 15000
SARB OUT
SLNB X1 0.00000000 -6.00000000 0.00000000 X2 0.75000000 -6.00000000 0.00000000
SARB OUT
SLNB X1 0.75000000 -6.00000000 0.00000000 X2 0.75000000 6.00000000 0.00000000
SARB OUT
SLNB X1 0.75000000 6.00000000 0.00000000 X2 0.00000000 6.00000000 0.00000000
SARB OUT
SLNB X1 0.00000000 6.00000000 0.00000000 X2 0.00000000 -6.00000000 0.00000000
我想在第二個塊中匹配與此行類似的 4 行:
SLNB X1 0.00000000 -6.00000000 0.00000000 X2 0.00000000 -6.00000000 2.00000000
我嘗試使用它,但我無法真正理解如何從第二個塊中獲取所有行:
(?:SAR - GRP 200. \s )*?(?:(?:SARB OUT)|(?<!^))*?(SLNB X1. \s )(?=SAR - GRP 300. \s )
https://regex101.com/r/442mwx/1
uj5u.com熱心網友回復:
我認為這可以滿足您的要求。稍后我可能會在 PowerShell 中嘗試一些實驗,看看獲得這些行是什么樣子的。
我認為它為最后一條 SLNB 線增加了一條線。如果這是一個問題,認為我們可以洗掉它。
(?s). ?SAR - GRP 200. ?SAR - GRP 200. ?(?:SARB OUT. ?(?<SLNB>\s SLNB.*?)) SAR - GRP 300.*
讓我知道這有多接近以及我們需要改變什么。
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/444966.html
上一篇:在Python中使用正則運算式提取帶有替代項的子字串
下一篇:從字串C#正則運算式中提取標記
