簡體   English   中英

C# 正則表達式匹配一個或多個數字,后跟一個星號,但當完整字符串為 05* 和 07* 時不匹配

[英]C# regex matching on one or many digit(s) followed by a star but not when the full string is 05* and 07*

我正在嘗試使用以下規則構建 C# 正則表達式:

最后一個字符必須是 *

第一個 char 必須是一個數字,並且可以后跟任意數量的數字,但必須至少有 1 個數字才能開始字符串。

完整的字符串不能是 05* 或 07*

所以這些應該匹配:

111*

12*

1*

不應僅在 05* 07* 上匹配

這適用於匹配情況:

Regex oneOrManyDigitWithTrailingStar = new(@"\A\d+[*]$", RegexOptions.Compiled);

這可以排除 05* 或 07*:

Regex IsNotZeroFiveStarOrZeroSevenStarOnly = new(@"(?s)(?<!\A05\*|\A07\*)$", RegexOptions.Compiled);

我已經嘗試了幾乎所有我能想到的東西,並閱讀了所有我能找到的問題,但無濟於事。 我似乎無法將這兩種方法結合起來。

我希望有人能幫幫忙。

您可以使用

^(?!0[57]\*\z)[0-9]+\*\z

詳情

  • ^ - 字符串的開頭
  • (?!0[57]\*\z) - 不允許05* / 07*立即向右並直到字符串的末尾
  • [0-9]+ - 一個或多個 ASCII 數字
  • \* - 文字*字符
  • \z - 字符串結束。

請參閱.NET 正則表達式演示

暫無
暫無

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

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