我希望修复这个正则表达式,以分别匹配两个文本块
本文关键字:文本 两个 正则表达式 我希望 | 更新日期: 2023-09-27 18:14:29
@@IF[- (<>%='@a-z0-9'r'n't).:!_,+/""]+(@@END IF|@ENDIF)
你好,我希望修复上面的正则表达式,以分别使用c#匹配两个文本块。目前,它将下面的内容视为单个匹配。
@@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
又一个贪婪的例子…
使用非贪婪量词(并简化正则表达式):
@@IF's+.*?(?:@@END IF|@ENDIF)
此处演示:http://regex101.com/r/kV0tM5/1
部分.*?
将匹配尽可能少的字符