我想使用Regex在模板上包括或排除条件文本。
一个简单的模板:
#IF {{Placeholder}}
If true the text should remain, else it should be deleted
#ENDIF
在第一次运行时,我将占位符替换为简单的true或false字符串:
#IF false
If true the text should remain, else it should be deleted
#ENDIF
在第二次运行中,我使用以下正则表达式应用条件:
Regex.Replace(input, "(?s)#IF false.*?#ENDIF\r\n", "", RegexOptions.Compiled);
如果占位符为“ false”,则将按预期方式删除全文块。
现在缺少的是“ true”条件,这是一个正则表达式,保留了内部文本,并仅删除了该组的“ #IF true”和“ #ENDIF”行 :
If true the text should remain, else it should be deleted
有什么想法吗?
答案 0 :(得分:1)
在这里,假设我在这里所做的事与#ENDIF都将被删除无关。如果为true,则注释将被删除;如果为false,则整个块将被删除。因此,考虑到这一点使正则表达式。它满足您的两个需求。如果为true,则删除注释,如果为false,则删除整个块。
正则表达式:'(?:(?:#IF\s(?:false)\n).*)|(?:#IF true\n)(?<=#IF true\n)|(?:#ENDIF)\n?'
这里是示例的链接,其中包含您在此处提供的数据。 https://regex101.com/r/cFy11t/9
答案 1 :(得分:1)