我正在做一个正则表达式以作为键分开:值文本输入与此类似
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