[英]Excluding specific regex match from general regex match
我一直在嘗試各種組合,但似乎無法獲得C#.Net應用程序所需的正則表達式。
我有一個文本文件,可以包含以下內容:
{{{3456764345345}}} yadda yadda yadda {{{xyz}}}
{{{3456764345345}}}可以包含任何字母數字值,並且每個文檔都不同,而{{{xyz}}}最初始終是{{{xyz}}}。
因此,您可能需要以下文檔:
{{{3456764345345}}} yadda yadda yadda {{{xyz}}}
{{{45435555}}} yadda yadda yadda {{{xyz}}}
{{{54727r475t76777a4}}} yadda yadda yadda {{{xyz}}}
我想將{{{3456764345345}}}和{{{xyz}}}都替換為不同的值。 問題是當我嘗試替換{{{3456764345345}}}時,它會替換自身,而{{{xyz}}}會替換它,因此我無法替換第二個值。
我目前正在使用:
{{{.*?}}}
作為我的表情。 這可以找到第一個,但也包括第二個。
我需要一個表達式,該表達式可以查找第一個值,但排除{{{xyz}}}值。
提前致謝。
您可以先替換{{{xyz}}}
子字符串,然后再選擇其他三括號子字符串,或者:
str = Regex.Replace(str, @"{{{(?!xyz\b)\w+}}}", "O_o");
str = Regex.Replace(str, @"{{{xyz}}}", "o_O");
將{{{(?!xyz\\b)\\w+}}}
分解為:
{{{
匹配{{{
(?!xyz\\b)
下一個字符不應該是xyz
\\w+
匹配單詞字符,至少一個 }}}
匹配}}}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.