2014-03-28 3 views
2

백 슬래시 (\)를 java 정규 표현식으로 macth하는 방법은 무엇입니까? 일부 파일에서는 모든 라텍스 태그와 일치하는 일부 스크립트가 있지만 작동하지 않았습니다.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는 이스케이프 처리 된 문자이므로 backspace는 사용자가 지적한 것처럼 생각합니다. –

3

이 시도

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

당신은 \ "시작"에, 그렇지 않으면 "\ B를"을 "\ 시작"로 변경, "\ 시작"에서 "\"를 탈출하는 또 다른 백 슬래시가 필요합니다 한 문자로 간주됩니다.

0

이 작동해야 ...

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

은 [A-Z]를 한번보다 더-Z 사이의 모든 문자를 허용하고 \\ 번 "\"수있다.

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

자바 문자열 순서에서 '\b' represets 백 스페이스 문자 :

당신은 당신의 발현 온라인 here

0

삽입 코드에서이 코드 라인의 유효성을 검사 할 수 있습니다. 정규 표현식에서 \b은 단어 경계를 의미합니다.

Issue with Java Regex \b

당신은 당신이 '\\' + CHAR과 순서 '\' + CHAR를 교체해야 이스케이프 문자 '\'로 시작 이상의 태그가있는 경우. 예를 들어

당신은 다음 태그 \end 코드

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

등 다른 태그가있는 경우.