簡體   English   中英

條件運算符的 C# 正則表達式示例 eq:2 , ne:3

[英]C# regex for conditional operators example eq:2 , ne:3

我想在 C# 中為可以包含任何運算符和操作數值的字符串編寫一個正則表達式。 這些運算符是字符串字符,例如 eq 表示相等,ct = contains & bt 表示 between ,eq 表示相等。

我將字符串放入后端,如 eq=4。 但是在測試過程中,有人用垃圾值測試了我的代碼到我的 API 並且字符串是 eq:**+4。

現在我想構建一個正則表達式,以便它根據 eq:5 或 bt:8-9 等正則表達式值驗證字符串。

請注意:在操作員之間排除其他操作員不應該具有像 eq:4-6 這樣的值。

我已經這樣做了@"^\\b(eq | ne | gt | lt | ge | le | ct | bt)\\w\\b : ? (\\d | - ) ? \\d"

似乎我很接近,但需要一些指導才能使其正常工作。

歡迎任何幫助或建議。

(eq|ne|gt|lt|ge|le|ct|bt):-?[0-9]+(--?[0-9]+)?

或命名組: @"(?<operator>eq|ne|gt|lt|ge|le|ct|bt):(?<firstValue>-?[0-9]+)(-(?<secondValue>-?[0-9]+))?$"

演示: https : //regex101.com/r/HWnIq9/1

您可以使用

@"^(eq|[gln]e|[bclg]t)\s*:\s*\d+(?:\.\d+)?(?:-\d+(?:\.\d+)?)?\z"

請參閱正則表達式演示 詳情

  • ^ - 字符串的開始
  • (eq|[gln]e|[bclg]t)
  • \\s*:\\s* - 用零個或多個空格括起來的冒號
  • \\d+(?:\\.\\d+)? - 一個整數/浮點數(一個或多個數字,然后是一個點和一個或多個數字的可選序列)
  • (?:-\\d+(?:\\.\\d+)?)? -一個可選的序列-一個或多個數字,然后一個點的可選序列和一個或多個數字
  • \\z - 字符串的末尾。

查看 .NET 正則表達式中$\\z錨點之間區別

暫無
暫無

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

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