2013-10-08 39 views
-2

我知道以前人們問過這個,但是我找不到解決方案。正則表達式匹配字符,然後編號

我試圖檢查一個字符串是否匹配下一個模式:大寫或不是字母「x」,然後是任何數字(沒有點或其他)。

+0

對不起,如果我的英文不是很好,希望你明白 – Gigalala

+2

唯一可以使用澄清的是你的意思是「任何數字」。 'x542'有效嗎?或者只有一個數字像'x5'? – Cruncher

回答

1

這個正則表達式應該是[xX]\d。括號內的內容是您想要匹配的字符列表。你想匹配大寫或小寫「X」,以便完成它。然後你想匹配任何數字。這就是\ d所做的。 \ d表示「任何數字」。以下是如何在java代碼中執行此操作的示例:

package com.sandbox; 

public class Sandbox { 

    public static void main(String[] args) { 
     String s = "x9"; 
     System.out.println(s.matches("[xX]\\d")); 
    } 
} 

請注意String中有兩個反斜槓。這是因爲\是一個轉義字符。在java中,您希望實際使用\符號,並且您必須通過鍵入\\來避免\符號。

+0

但這個正則表達式確保這個「x34g」不會工作? – Gigalala

+0

@Gigalala是的。將's'改爲「x34g」,你會發現它不起作用。 –

0

如果我理解你的要求:

(x|X)[0-9]+ 

這第一場比賽無論是 「X」 或 「X」(|是或)。然後它匹配來自組[0-9]中的一個或多個明顯數字的字符。

1

可以使用這個表達式:

"(?i)^x\\d+$" 
  1. (?i)爲忽略大小寫匹配以匹配X或X
  2. \ d +是用於匹配1個或多個數字[0-9]