2014-03-28 94 views
2

如何在java正則表達式中創建一個backslah(\)?我有一些sript匹配所有乳膠標籤在一些文件,但它沒有奏效。Java正則表達式:匹配反斜槓字符

public class TestMatchTag { 

    public static void main(String[] args) { 

     String tag = "\begin"; 

     if (Pattern.matches("\\\\[a-z]+", tag)) { 
      System.out.println("MATCH"); 
     } 
    } 

} 

回答

2

更換String tag = "\begin";String tag = "\\begin";。正則表達式是有效的,但你的輸入字符串需要轉義\字符。

+0

\ b是一個逃逸字符,退格我認爲你指出。 –

3

試試這個,

Pattern.matches("[\\a-z]+", tag) 
0

你需要一個反斜槓逃脫「\開始」,將其更改爲「\開始」中的「\」,否則「\ B」在你的「\開始」將被視爲一個角色。

0

這應該工作...

Pattern.matches("\\[a-z]+", tag); 

[A-Z]允許-Z更之間的任何字符不止一次和\\允許 「\」 一次。

你可以驗證表達式在線here

0

插入代碼中的這行代碼:

tag = tag.replace("\b", "\\b"); 

在java中的字符串序列'\b' represets退格字符。 在正則表達式中\b表示字邊界。

Issue with Java Regex \b

如果你有更多的標籤,這與轉義字符'\'開始你應該'\\' + CHAR取代序列'\' + CHAR

例如,如果您有標籤\end然後代碼

tag = tag.replace("\e", "\\e"); 

等其他標籤。

相關問題