簡體   English   中英

C#正則表達式中的\\ ^錯誤

[英]Error with \^ in c# regex

我有一個字符串,其中包含“ ^ ##”形式的顏色,其中##可以為00-99。

我寫了正則表達式來檢測和替換這些顏色:

Input = Regex.Replace(Input, "\\^[0-9][0-9]", "");

但是,編譯器似乎不喜歡\\ ^作為檢測“ ^”字符的方式(給出無效的轉義碼錯誤)。 那么,如何在C#正則表達式中尋找^字符呢?

您可以嘗試在正則表達式中使用逐字字符串

Input = Regex.Replace(Input, @"\^[0-9][0-9]", "");

如果您想了解有關字符串文字的更多信息,請閱讀MSDN上的這篇文章

發生這種情況是因為,沒有這樣的轉義序列( \\^

您可以使用:

  • C#逐字字符串: @"\\^[0-9][0-9]"
  • 兩個反斜杠而不是一個: "\\\\^[0-9][0-9]"

提示:

  • 字符類[0-9]等同於速記\\d
  • 除了使用[0-9][0-9]您還可以使用[0-9]{2} (或\\d{2} )。 當您有更多重復時,這會有所幫助。

參考文獻:

角色類重復

嘗試雙斜杠"\\\\^"

在創建字符串對象本身時,斜杠是控制字符。

但是您希望字符串本身包含一個斜杠。

由於C#編譯器本身為字符串中的\\提供了特殊含義,因此,如果要使字符串包含\\ ,則必須執行以下兩項操作之一:

  • 通過將其加倍來對其進行轉義: \\\\

  • 通過在開頭的"加上@@"\\" ,使字符串成為逐字字符串-但請注意,后一個選項更改了必須對字符串中的引號( " )進行轉義的方式

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM