簡體   English   中英

正則表達式模式是簡單的文本還是規則?

[英]Is Regex pattern a simple text or a rule?

是否有任何相對簡單的方式將Regex模式識別為簡單文本或規則?

一個例子。 @"[A-Z0-9]" -是一條規則, @"\\\\[A-Z0-9\\\\]"是純文本(C#字符串語法)

除了無法檢測到'['即逃脫了正則表達式字符之外,我想不起什么。

由於使用@復制了字符串字面量,請嘗試-

1.查找每個'['/'*'/'+'/'所有其他正則表達式字符',並確保先前的字符為'\\'。

2.另一種方法可能是編寫語法/正則表達式來檢查這一點。 我認為您需要語法。 在任何情況下,上面的(1)都比較簡單。

一些字符串方法可能有助於檢查上述內容(例如IndexOf ...)。

無論如何,正則表達式只是一個字符串,除非並且直到它被編譯和使用為止。 我仍然看不到你為什么要這樣做。 如果要確保某種形式的正則表達式很容易。 (我暫時不知道C#的特定方式-請參閱Svish的答案。)。

注意
1.正則表達式始終是一個規則,因為正則表達式“ XYZ”是始終與“ XYZ”單獨匹配且與其他任何內容都不匹配的規則。

我希望這有幫助。

你什么意思? 正則表達式始終以字符串形式編寫。 不管如何編寫字符串,它始終是字符串。

另一方面,如果您要檢查字符串是否為有效的正則表達式(如果您要的是這),則始終可以執行以下操作:

try
{
   new Regex(someRegexString);
}
catch(ArgumentException)
{
  // Regular expression parsing error. I.e: Not a valid regular expression.
}

現在,如果要使用正則表達式字符串,則可以將其用作字符串或正則表達式。 使用它作為一個字符串就是使用它作為一個字符串...使用它作為一個正則表達式意味着創建一個像... Regex對象(或使用一些靜態方法Regex )。 如果您隨后將其用作規則,替換文本,提取內容或其他內容,那實際上並不會改變任何內容。 正則表達式仍然是正則表達式。

暫無
暫無

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

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