我想把
sss A=
Key 1
sss Av=
Hello 1
World 1
Av.fff
sss B=
Key 2
sss Bv=
Hello 2
World 2
Bv.fff
sss C=
Key 3
sss Cv=
Hello 3
World 3
Cv.fff
sss kv=
@
{A}={Av}
{B}={Bv}
{C}={Cv}
DDD(kv)
把上面的红色字整理出去,红色字内容是变化的, 但是它所在的位置不变,
整理为:
Key 1
-
Hello 1
World 1
---
Key 2
-
Hello 2
World 2
---
Key 3
-
Hello 3
World 3
键和值之前用 - 分开
键值对儿之间用 --- 分开
写了下面的代码, 遇到了正则匹配问题,
我的想法是用两个括号分别匹配住键和值的内容, 然后再整理, 但是括号就是匹配不上,
请路过大佬支招, 谢谢- $s = @'
- sss A=
- Key 1
- sss Av=
- Hello 1
- World 1
- Av.fff
-
- sss B=
- Key 2
- sss Bv=
- Hello 2
-
- World 2
- Bv.fff
-
- sss C=
- Key 3
- sss Cv=
- Hello 3
- World 3
- Cv.fff
-
- sss kv=
- @
- {A}={Av}
- {B}={Bv}
- {C}={Cv}
- DDD(kv)
- '@
-
- $rx = [regex]'sss [A-Z]=\r\n(.+)\r\nsss [A-Z]v=(?s)(.+)?[A-Z]v.fff'
- $rx.Matches($s).Value
复制代码
|