[英]Optional regex character group
我正在嘗試編寫一個正則表達式來驗證某些命令行參數,我已經使其正常工作了,但它似乎不是很有效,並且我想看看是否有一種將參數組合在一起的方法。
命令行具有3個可選參數-h -s -r
,它們可能都已使用,可能根本不使用。
我現在有的正則表達式是
myapp.exe\s?(-h\s*)?\s?(-s\s*)\s?(-r\s*)?
是否必須對每個參數重復\\s?(-x\\s*)
,還是可以將它們分組在一起? 像\\s?(-h,-r,-s\\s*)
會很有幫助!
謝謝
您可以使用類似這樣的內容:
myapp\.exe\s?(-[hsr]\s*)*
如果您想讓正則表達式與文字點匹配,請不要忘記轉義點。
[ ... ]
是一個字符類,將匹配其中的任何一個字符(或范圍,如果您定義了任何字符)。
編輯:為了確保不重復標記,您可以使用反向引用和否定的超前方式以及行尾錨:
myapp\.exe\s?(?:-([hsr])(?!.*\1)\s*)*$
\\1
將引用([hsr])
捕獲的任何內容
如果內部匹配, (?! ... )
將否定匹配
$
將確保檢查整個字符串。 如果您在問題中提供的字符串后面有其他任何內容,以使其正確匹配,則可能要刪除該部分。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.