簡體   English   中英

如何檢查C#正則表達式是否嘗試匹配1個(僅1個)字符的字符串?

[英]How Can I Check If a C# Regular Expression Is Trying to Match 1-(and-only-1)-Character Strings?

也許這是一個非常罕見(甚至愚蠢)的問題,但是我的應用程序確實需要它。

如何檢查C#正則表達式是否嘗試匹配1個字符的字符串?

這意味着,我只允許用戶搜索1個字符的字符串。 如果用戶嘗試搜索多字符字符串,則會向用戶顯示錯誤消息。

我說清楚了嗎?

謝謝。

彼得

PS:我看到了有關計算最終匹配字符串長度的答案,但是由於某些未知原因,答案消失了。 我想了一會兒,我認為計算最終匹配的字符串長度是可以的,盡管這會有點慢。 但是,最初的問題非常罕見且乏味。

一個正則表達式將是.{1}這將允許任何字符。 如果只想使用字母數字,則可以使用[a-z0-9]{1}或簡寫/w{1}

另一個選擇是限制用戶可以在輸入字段中鍵入的字符數。 設置一個最大長度。

另一個選擇是將表單輸入字段保存為char而不是字符串,盡管您可能需要對此進行一些處理以防止出錯。

為什么不使用maxlength並保存為char。

你可以找轉義*+{} ? 等等,並計算字符數(不要忘記將[]展平為一個字符)。

基本上,您必須解析您的正則表達式。

除了驗證可能很復雜的正則表達式外,您還可以僅將其應用於單個字符而不是整個字符串。

如果這不可能,則您可能希望將正則表達式的可能性限制為某些特定功能。 例如,用戶只能輸入要匹配的字符或要排除的字符。 然后,在代碼中構建正則表達式。

例如:

  • ABC匹配[ABC]
  • ^ABC匹配[^ABC]
  • AZ匹配[AZ]
  • #匹配[0-9]
  • \\w符合\\w
  • AB#xz匹配[AB]|[0-9]|[xz]|\\w
  • 您需要支持哪些情況?

這在某種程度上很容易解析和驗證。

暫無
暫無

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

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