簡體   English   中英

可選的正則表達式字符組

[英]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*)*

如果您想讓正則表達式與文字點匹配,請不要忘記轉義點。

[ ... ]是一個字符類,將匹配其中的任何一個字符(或范圍,如果您定義了任何字符)。

regex101演示


編輯:為了確保不重復標記,您可以使用反向引用和否定的超前方式以及行尾錨:

myapp\.exe\s?(?:-([hsr])(?!.*\1)\s*)*$

\\1將引用([hsr])捕獲的任何內容

如果內部匹配, (?! ... )將否定匹配

$將確保檢查整個字符串。 如果您在問題中提供的字符串后面有其他任何內容,以使其正確匹配,則可能要刪除該部分。

暫無
暫無

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

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