RegEx expression that will capture everything between two characters including multiline blocks

后端 未结 3 1043
迷失自我
迷失自我 2020-12-09 17:22

I want to capture all text & blocks of text between <% and %>.

For example:



Title Here
&l         


        
相关标签:
3条回答
  • 2020-12-09 17:45

    \<\%(.*?)\%\>. You need to use .*? to get non-greedy pattern matching.

    EDIT To solve the multiline problem, you can't use the . wildcard, as it matches everything except newline. This option differs depending on your regular expressions engine. So, I can tell you what to do if you tell me your regex engine.

    0 讨论(0)
  • 2020-12-09 17:55

    Which regex engine are you using?

    <%(.*?)%>
    

    should work with the "dot matches newline" option enabled. If you don't know how to set that, try

    <%([\s\S]*?)%>
    

    or

    (?s)<%(.*?)%>
    

    No need to escape <, %, or > by the way.

    0 讨论(0)
  • 2020-12-09 18:00

    I've been using Microsoft's Regex engine (provided by JScript in IE) and it has a 'multi-line' switch that effects the behaviour of ., but then still I've had problems I had to resolve using [\u0000-\uFFFF] which matches everything including EOL's or any control chars...

    So have a go with <%([\u0000-\uFFFF]*?)%>

    0 讨论(0)
提交回复
热议问题