我正在做一个正则表达式以作为键分开:值文本输入与此类似


  QA〜BlaBlaBlaWE〜1235123FA〜blablablaER〜blabla123ZX〜2342blaaa


我已经能够将其分开,但是当尝试将Group3作为键并将Group4作为值时

质量检查〜BlaBlaBla

它保留在Group2(QA)中,而Group3保留在值(BlaBlaBla)中

我的正则表达式是这个


  ((\ w {2}〜)?(。*?)(\ w {2}〜| $))


关键是要能够创建这样的列表

> Key Value
> QA BlaBlaBla
> WE 1235123
> FA blablabla
> ER blabla123
> ZX 2342blaaa


这是例子
https://regex101.com/r/Xh8RAA/1

我不能很好地创建正则表达式,以便所有内容都在Group3和Group4中,有人可以帮助我

最佳答案

您可以使用正向超前模式来避免消耗下一个标头令牌:

([A-Z]{2})~(.*?)(?=[A-Z]{2}~|$)


用组1和组2替换匹配项,然后用换行符替换,您将获得所需的输出。

演示:https://regex101.com/r/Xh8RAA/2

07-26 04:35