[英]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]+))?$"
您可以使用
@"^(eq|[gln]e|[bclg]t)\s*:\s*\d+(?:\.\d+)?(?:-\d+(?:\.\d+)?)?\z"
請參閱正則表達式演示。 詳情:
^
- 字符串的開始(eq|[gln]e|[bclg]t)
\\s*:\\s*
- 用零個或多個空格括起來的冒號\\d+(?:\\.\\d+)?
- 一個整數/浮點數(一個或多個數字,然后是一個點和一個或多個數字的可選序列)(?:-\\d+(?:\\.\\d+)?)?
-一個可選的序列-
一個或多個數字,然后一個點的可選序列和一個或多個數字\\z
- 字符串的末尾。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.