簡體   English   中英

RegEx字符串,用於三個字母和兩個帶前置和后置空格的數字

[英]RegEx string for three letters and two numbers with pre- and post- spaces

兩個快速問題:

  1. 對於三個字母和兩個帶有前后空格的數字(即“LET 12”),RegEx字符串是什么?
  2. 你碰巧知道任何好的RegEx資源/工具嗎?

要獲得良好的資源,請嘗試使用此網站RegexBuddy程序。 您甚至可以使用這些網站自己找出問題的答案。

為了讓你開始,你需要這樣的東西:

/^[a-zA-Z]{3}\s+[0-9]{2}$/

但具體細節取決於您的要求。 您可能更好的想法是學習如何自己使用正則表達式,然后編寫正則表達式而不是僅僅復制答案。 小細節有很大的不同。 例子:

  • 什么是“信”? 只是AZ還是外國字母? 小寫怎么樣?
  • 什么是“號碼”? 只有0-9還是外國數字? 只有整數? 只有正整數? 可以有前導零嗎?
  • 字母和數字之間應該有一個空格嗎? 或任何數量的空白? 甚至沒有?
  • 是否要在更大的文本中搜索此字符串? 還是准確匹配一條線?
  • 等等..

這些問題的答案將改變正則表達式。 從長遠來看,學習如何創建正則表達式比完全指定您的要求並等待其他人回復要快得多。

我忘了提到前后會有一個空間。 我該如何包含它?

您需要再次考慮以下問題:

  • 你的意思是只有一個空間或任何數量的空間? 可能不總是一個空間,但有時只是?
  • 你的意思是字面上的空格字符或任何空格字符?

我的猜測是:

/^\s+[a-zA-Z]{3}\s+[0-9]{2}\s+$/

/[az]{3} [0-9]{2}/i將匹配3個字母后跟一個空白字符,然后是2個數字。 [az]是包含字母a到z的字符類{3}表示您想要該類的3個成員。 空格字符與文字空間匹配(或者,您可以使用\\s ,這是一個匹配任何空白字符的“速記”字符類)。 最后的i是一個模式修飾符,指定您的模式不區分大小寫。

如果你想要整個字符串只是那個,你需要用^$ 錨定它:

/^[a-z]{3} [0-9]{2}$/i

正則表達資源:

^([A-Za-z]{3}) ([0-9]{2})$假設字母/數字之間有一個空格,如您的示例所示。 這將分別捕獲字母和數字。

我使用http://gskinner.com/RegExr/ - 它允許您構建一個正則表達式並使用您自己的文本進行測試。

\\w{3}\\s{1}\\d{2}我喜歡這個網站。

編輯: [a-zA-Z]{3}\\s{1}\\d{2} - \\w支持數字字符。

正如您可以從各種各樣的答案中看出的那樣,RegEx是一個復雜的主題,具有廣泛的意見和偏好,通常不止一種方式。 這是我的首選解決方案。

^[a-zA-Z]{3}\s*\d{2}$

我使用[a-zA-Z]而不是\\w因為\\w有時包含下划線。

\\s*允許零個或多個空格。

我嘗試盡可能使用角色類,這就是為什么我選擇\\d

嘗試這種規則表達

[^"\r\n]{3,}

暫無
暫無

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

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