2017-10-18 92 views
-3

例如,這是我的字符串「RL5XYZ」,我想檢查第三個字符是5還是其他數字。 我想用正則表達式來做這件事,沒有子串。正則表達式匹配第三個字符

+0

將它永遠是第三個字符? – hungrykoala

+0

堆棧溢出不是一個免費的代碼寫入服務,請顯示你的代碼/努力和實際問題是什麼。 – Cerbrus

回答

-1

如果它總是要被檢查的兩個字符,然後用5的存在,然後其次是別的東西,那麼你可以簡單地檢查

/..5*/

如果你想獲得第三個字符(假設它總是一個數字),那麼你可以使用。

/..(\d)*/

你會得到結果,從正則表達式這樣回:

Match 1 Full match 0-3 `RL5` Group 1. 2-3 `5` Match 2 Full match 3-5 `XY`

+0

請不要在明顯的主題/壞問題上張貼答案! [見:**應該建議關閉主題問題嗎?**](// meta.stackoverflow.com/q/276572) – Cerbrus

+0

/..(\d)*/這會給R0a0XYZ提供3個匹配項 –

+0

謝謝,代碼唯一的,你的解釋幫助我,現在我的最終Regex看起來像這樣: **/^ \ d {2} 5 \ w {7}/** – perija

0

如果你想查詢字符串的第三個字符是一個數字,您可以使用下面的正則表達式:

/^..[0-9]/ 
  • ^意味着匹配必須出現在字符串的開始
  • 。手段匹配任何字符(我們這樣做兩次)
  • [0-9]手段匹配0-9範圍內的數字字符。你實際上可以調整這是一個不同的範圍。

您也可以使用下面的符號

/^.{2}[0-9]/ 

括號中的數字基本上意味着重複以前的操作兩次凝結.

您還可以將字符集[0-9]重寫爲\ d。

/^.{2}\d/ 

以匹配JS,針對您所創建的模式簡單調用exec:

/^.{2}\d/.exec('aa3' )// => [「AA3 」指數:0,輸入: 「AA3」] /^.{2}\d/.exec('aaa')// =>空

+0

請不要在明顯的主題/不良問題上發表回答! [見:**應該建議關閉主題問題嗎?**](// meta.stackoverflow.com/q/276572) – Cerbrus

-1
var input = 'RL5XYZ'; 
var position = 3; 
var match = '5'; 

position--; 
var r = new RegExp('^[^\s\S]{'+position+'}'+match); 

console.log(input.match(r)); 

位置以檢查是尋找和匹配找什麼

編輯:我忘了^

+0

[^ \ s \ S] {3}表示沒有空格且沒有非空白。這將永遠不會匹配任何 –

+0

你嘗試過嗎? @LeonhardTriendl – ZiTAL

+0

我們不關心前兩個職位,我們關心第三個職位,在此之前我休息1個職位 – ZiTAL

-1

如果你想檢查第三個字符是一個數字,您可以使用

.{2}\d.* 

不過。匹配一切,所以也許你更喜歡:

\w{2}\d\w* 

\w{2}指這[a-zA-Z0-9_]兩倍。 \d指任何數字 \w*指的[a-zA-Z0-9_]零次或多次