1)我尝试用正则表达式匹配字符串的全部部分。我认为贪婪有问题。下面是考虑中的pl / sql的结构
ERRORHANDLER
WHEN TRUE THEN
IF SOMETHING THEN
ELSE
END IF;
WHEN FALSE THEN
END;
以下是我为匹配 ^(\ s *)ERRORHANDLER((?!FUNCTION)。) END [(\ s )(\ w +)|而定的正则表达式。 ]
在哪里,
^(\s*)ERRORHANDLER
-匹配随机空间和静态字符串ERRORHANDLER,它们始终是模式的开始。
((?!FUNCTION).)*
-贪婪的负面展望*
END[(\s*)(\w+)|;]
-匹配END以及以分号结尾的可选字符串。
尽管我确定匹配字符串的方法,但是此正则表达式未正确匹配它。
预期输出:
完全匹配
ERRORHANDLER
WHEN TRUE THEN
IF SOMETHING THEN
ELSE
END IF;
WHEN FALSE THEN
END;
答案 0 :(得分:0)
因为这里的开始和结尾都是基于单词的,所以需要使用border并合并了2以下的字符,
所以对于这个正则表达式,这个问题将匹配\ bERRORHANDLER [\ w | \ W] + END \ b;