[英]C#: How can I check if these strings contain only numbers and letters? (Regex)
[英]C# Regex, how can I check that a regex group contains only digits
我在 C# 中創建了以下正則表達式模式:
Regex pattern = new Regex(@"(?<prefix>retour-)?(?<trackingNumber>\s*[0-9]+\s*)(?<postfix>-([0]|[1-9]{1,2}))?");
(?<prefix>retour-)?(?<trackingNumber>\s*[0-9]+\s*)(?<postfix>-([0]|[1-9]{1,2}))?
prefix
組是"retour-"
,如果出現,則位於開頭。trackingNumber
組是強制性的,應僅包含數字。postfix
組是"-"
,后面只有數字,不是強制性的。trackingNumber
組只有在包含數字時才能成功。 postfix
也是如此。 在一個類似的問題中,問題是通過使用正則表達式錨(^, $)
解決的,但在我的情況下,我不能使用它們,因為trackingNumber
組從中間開始。例如:
"1234ABC3456"
不應該成功"retour-123456-12B"
也不應該成功問題是正則表達式(?<trackingNumber>\s*[0-9]+\s*)
即使對於不只包含數字的系列也會返回成功。
這種模式對我有用:
^(?<prefix>retour-)?\s*(?<trackingNumber>\d+)\s*(?<postfix>-(\d+))?$
輸入 | 結果 |
---|---|
1234ABC3456 |
沒有匹配 |
retour-123456-12B |
沒有匹配 |
retour-123456-123 |
前綴: "retour-" ,trackingNumber: "123456" ,postFix: "-123" |
543210-999 |
trackingNumber: "543210" ,后綴: "-999" |
987654 |
追蹤號碼: "987654" |
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.