2013-10-12 63 views
0

如何使用動態數字preg_match固定字母?將固定字母與動態數字匹配

E.g.

#^[1-9][0-9]*$# 

是獲取兩個數字的代碼是任何字符串的開始,例如1和0

我想要做的是匹配一個文件的所有字符串,看起來像...... r00,r01,r02,r03 ......等等,直到例如R999

什麼,我試圖做的是

#r^[1-9][0-9]*$# 

*這是使用的preg_match

然而,它沒有完成工作。任何幫助/建議?

+0

''^ =字符串,'R 2'邏輯的起點意味着_「'r'後跟字符串」_「的開始,這在邏輯上是不可能的。你可能想要''^^r [0-9] {0,3} $#'(你似乎也想讓一個開始的'0',所以放下'[1-9]'開始)。 – Wrikken

回答

0

,如果你想停止在r999嘗試這種模式:

#^r[0-9]{2,3}$# 

這將匹配:

  • 字符串(^
  • 文字r
  • 兩個啓動或從0到9的三位數字
  • e字符串($

或者,如果不存在上限—即r999999這種模式的nd爲可接受的:

#^r[0-9]{2,}$# 

這將匹配:

  • 字符串的開始(^
  • a字面r
  • 兩個或更多個數字0到9
  • 字符串($
+0

您的代碼將不會與OP所要求的r0x類似:r00,r01,r02,r03 ...等等,直到例如r999' –

+1

@Glavić是的,我剛剛看到並糾正它。 –

0

使用圖案的端部:

#^r\d{2,3}$# 

參見explanation

0

^的意思是「行的開始」,除非它在括號內使用,意思是「除了後面的字符之外的所有內容」。

您想要類似#r\d{2,3}#,可選地帶有^第一個或$最後一個(除了哈希值)。

0

我的2美分:

\br\d{1,3}\b 

它將匹配R0,R00,R01,R02,R03 ... R999但不r\d{4,}