source xml string
<w:tc>
<w:tcPr>
<w:tcW w:w="1870" w:type="dxa"/>
</w:tcPr>
<w:p w14:paraId="4A2404F3" w14:textId="6CC57F74" w:rsidR="00B721B4" w:rsidRDefault="00B721B4">
<w:r>
<w:t>{{</w:t>
</w:r>
<w:proofErr w:type="spellStart"/>
<w:r>
<w:t>CreateDate</w:t>
</w:r>
<w:proofErr w:type="spellEnd"/>
<w:r>
<w:t>}}</w:t>
</w:r>
</w:p>
</w:tc>
expect
<w:r>
<w:t>2022-09-20</w:t>
</w:r>
I tried to use below regex and C# code to replace but it did not work.
I think *
between {}
can replace it, could friends give me idea about my mistakes, really appreciate!
Update2:
I tried to use \{\{. Company_Name. \}\}
but it get full string between first {{
and last }}
,
CodePudding user response:
My guess is there are two issues.
You aren't matching "any character after {{". It should be
.*
instead of just*
I think you aren't matching multi-line. You'll need specify the match for
newline
as well:(.|\n)*
instead of.*
Giving you the regex string:
\{\{(.|\n)*CreateDate(.|\n)*\}\}
You might be able to use a simpler regex \{\{.*CreateDate.*\}\}
by setting RegexOptions.Multline
CodePudding user response:
Try this one: {{[^{}]*CreateDate[^{}]*}}