@@IF[- (<>%='@a-z0-9\r\n\t).:!_,+/""]+(@@END IF|@ENDIF)
您好,我希望使用 C# 修复上述正则表达式以分别匹配两个文本 block 。目前它将以下视为单个匹配项。
@@IF (<%=SHOPCODE%> == '2' ) THEN
return complicated if
@@ELSE
Boo
@@END IF
!
@@IF (<%=SHOPCODE%> == '1' ) THEN
County is UK
@@ELSE
Not UK
@@END IF
请您参考如下方法:
您可以尝试使用Lazy 方式捕获组。
(@@IF\b[\S\s]*?\r?\n@@?END ?IF)
正则表达式解释:(根据您的需要您可以更改可选)
( group and capture to \1:
@@IF '@@IF'
\b the word boundary
[\S\s]*? any character (0 or more times (least possible))
\r? '\r' (carriage return) (optional)
\n? '\n' (newline)
@ '@'
@? '@' (optional)
END 'END'
? ' ' (optional)
IF 'IF'
) end of \1
