自定义解释器 - 使用正则表达式
Custom interpreter - with regex
我正在尝试使用正则表达式解析此代码:
IF KNVV -> KDGRP IN( "EK", "ES" ) THEN KNA1-SORTL ="KA"
ELSE KNVV -> KDGRP IN( "EL", "E3", "E5", "E7", "E2", "EF" ) THEN KNA1-SORTL ="IN"
ELSE KNVV -> KDGRP IN( "EX", "EU", "EV", "ET", "EW" ) THEN KNA1-SORTL ="CA"
END
但我无法生成有效的正则表达式...
[ ]*[a-zA-Z0-9]+[ ]*([a-zA-Z0-9]+)[ ]*\-\>[ ]*([a-zA-Z0-9]+)[ ]*IN[ ]*\([ ]*([a-zA-Z0-9 ]+)+[ ]*\)[ ]*THEN[ ]*([a-zA-Z0-9\-]+)[ ]*\=[ ]*([a-zA-Z0-9\"\,]+)[ ]*
我需要在线验证和每组以下值:
: KNVV
: KDGRP
: EK,ES
: KNA1-SORTL
: KA
有什么办法可以得到吗?
虽然无法获得准确的输出 EK,ES
,但您可以获得类似 "EK", "ES"
的输出。
这是一个正则表达式,可以满足您的需求。
(?:IF|ELSE) ([A-Z]+) -> ([A-Z]+) IN\(( (?:"[A-Z0-9]{2}"(?:[, ])*)+)\)(?: +)THEN ([A-Z0-9\-]+) ="([A-Z]+)"
它非常复杂,所以这里是它的作用的直观表示。
这个正则表达式将输出
完全匹配IF KNVV -> KDGRP IN( "EK", "ES" ) THEN KNA1-SORTL ="KA"
第 1 组。KNVV
第 2 组。KDGRP
第 3 组。"EK", "ES"
第 4 组。KNA1-SORTL
第 5 组 KA
您可以测试更多案例at this regex101
我正在尝试使用正则表达式解析此代码:
IF KNVV -> KDGRP IN( "EK", "ES" ) THEN KNA1-SORTL ="KA"
ELSE KNVV -> KDGRP IN( "EL", "E3", "E5", "E7", "E2", "EF" ) THEN KNA1-SORTL ="IN"
ELSE KNVV -> KDGRP IN( "EX", "EU", "EV", "ET", "EW" ) THEN KNA1-SORTL ="CA"
END
但我无法生成有效的正则表达式...
[ ]*[a-zA-Z0-9]+[ ]*([a-zA-Z0-9]+)[ ]*\-\>[ ]*([a-zA-Z0-9]+)[ ]*IN[ ]*\([ ]*([a-zA-Z0-9 ]+)+[ ]*\)[ ]*THEN[ ]*([a-zA-Z0-9\-]+)[ ]*\=[ ]*([a-zA-Z0-9\"\,]+)[ ]*
我需要在线验证和每组以下值:
: KNVV
: KDGRP
: EK,ES
: KNA1-SORTL
: KA
有什么办法可以得到吗?
虽然无法获得准确的输出 EK,ES
,但您可以获得类似 "EK", "ES"
的输出。
这是一个正则表达式,可以满足您的需求。
(?:IF|ELSE) ([A-Z]+) -> ([A-Z]+) IN\(( (?:"[A-Z0-9]{2}"(?:[, ])*)+)\)(?: +)THEN ([A-Z0-9\-]+) ="([A-Z]+)"
它非常复杂,所以这里是它的作用的直观表示。
这个正则表达式将输出
完全匹配IF KNVV -> KDGRP IN( "EK", "ES" ) THEN KNA1-SORTL ="KA"
第 1 组。KNVV
第 2 组。KDGRP
第 3 组。"EK", "ES"
第 4 组。KNA1-SORTL
第 5 组 KA
您可以测试更多案例at this regex101