簡體   English   中英

C#正則表達式組合

[英]C# Regular expression combination

我只是想知道是否可以將這兩個表達式合而為一。

 Regex comb1 = new Regex("[A-Z0-9]{4,6}-[A-Z0-9]{4,6}-[A-Z0-9]{4,6}");
 Regex comb2 = new Regex("[A-Z0-9]{4,6}-[A-Z0-9]{4,6}-[A-Z0-9]{4,6}-[A-Z0-9]{4,6}");

通常,您將使用交替( | )來匹配多個模式之一。 例如:

aaa|bbb

將首先嘗試匹配模式aaa ,然后嘗試模式bbb

但是,由於您的模式是如此相似,因此您可以使用如下所示的內容:

[A-Z0-9]{4,6}(-[A-Z0-9]{4,6}){2,3}

這將匹配四到六個字母數字字符的任何序列,后跟一個連字符和四到六個字母數字字符,必須重復兩次或三遍。

如果圖案中有可選零件,可以使用(OptionalPattern)? ,因此您的代碼可能變為:

[A-Z0-9]{4,6}-[A-Z0-9]{4,6}-[A-Z0-9]{4,6}(-[A-Z0-9]{4,6})?

但是pswg的{2,3}是一個更好的選擇,因為它還消除了模式中不必要的重復。 我只說這是因為它在類似情況下很有用。

暫無
暫無

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

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