簡體   English   中英

正則表達式匹配命令行中以逗號分隔的多個參數

[英]Regex match multiple parameters separated by comma in command line

我正在研究 C# 正則表達式以實現以下結果。

command value1 valu2 : param1=value1, param2=[valu2], param3 = vaule3 /option1 |option2

Group1: param1=value1
Group2: param2=[valu2]
Group3: param3 = vaule3

我目前的正則表達式:

(\w+\s*\=\s*\w+)(,\w+\s*\=\s*[a-zA-Z0-9\]\[]+)*

我缺少包括以下內容:

  1. 應該從:
  2. 應該允許 [] 字符進入值部分
  3. 應該停在 / 或 | 或行尾

這是測試測試: https://regex101.com/r/5kPXAz/1

我使用了以下示例:

您嘗試的模式與所有值都不匹配,因為使用字符 class 匹配方括號只會在首先匹配逗號后出現在模式的第二部分。

您可以使用交替來匹配被方括號包圍的單詞字符或僅匹配單詞字符,並使用正向前瞻來斷言/,或行尾。

\w+\s*=\s*(?:\[\w+\]|\w+)(?=\s*[,/]|$)

解釋

  • \w+\s*=\s*匹配 1+ 個單詞字符和可選空白字符之間的等號
  • (?:非捕獲組
    • \[\w+\]匹配[ 1+ 單詞字符和]
    • | 或者
    • \w+匹配 1+ 個單詞字符
  • )關閉組
  • (?=\s*[,/]|$)正向前瞻,斷言右邊是,/或行尾

.NET 正則表達式演示

暫無
暫無

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

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