簡體   English   中英

如何編寫C#Regex以確保字符串以一個char后跟6位開頭

[英]How to write a C# Regex to ensure a string starts with one char followed by 6 digits

我需要在C#中編寫一個Regex,以確保字符串以S,R或V中的一個字符開頭,然后有六個后續數字,如下所示:“S123456”。 這是我正在嘗試使用的正則表達式:

@ “(S | R | V)[0-9] {6}?”

但是,如果我傳遞一個字符串太多,如“S1234567”,它就會失敗。 我在這做錯了什么?

var regex = new Regex(@"^[SRV]\d{6}$");

三個選項,取決於您想要實現的目標:

只是為了匹配字符串:

[SRV]\d{6}

要將該字符串作為單獨的“單詞”查找:

\b[SRV]\d{6}\b

為正則表達式匹配完整的字符串(我認為這是你需要的):

^[SRV]\d{6}$

編輯:

你的正則表達式“失敗”因為它只是在字符串中尋找你的模式(作為我的第一個例子)。 如果字符串是S123456 7,則引擎與粗體部分匹配(從S到6),因此報告成功。 你必須使用錨點(我的第三個例子),如果你想讓字符串只包含你的模式而沒有別的東西(即字符串從頭到尾匹配模式)。

^[sSvVnN]\d{6}$

將匹配指定字符的大小寫

暫無
暫無

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

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