내가 자바 정규 표현식에 사용하기 시작했고 나는이 (인위적인 예)와 같은 패턴을 작성해야 찾을 :안 문자열 이스케이프 (백 슬래시 지옥)
C:\\\\windows\\\\system\\d+
일치하는
C:\windows\system32
미친 양의 백 슬래시없이 java 정규식을 사용할 수 있습니까?
내가 자바 정규 표현식에 사용하기 시작했고 나는이 (인위적인 예)와 같은 패턴을 작성해야 찾을 :안 문자열 이스케이프 (백 슬래시 지옥)
C:\\\\windows\\\\system\\d+
일치하는
C:\windows\system32
미친 양의 백 슬래시없이 java 정규식을 사용할 수 있습니까?
사용 Pattern.quote(String s)
그것은 전달 된 문자열에 리터럴 문자를 모든 메타 문자를 취급
(문서에 대한 클릭) (하지만 여전히 리터럴 문자열 건설의 백 슬래시를 이스케이프해야합니다). 이를 통해 \\\\
대신 \\
을 입력하면 실제/리터럴 \
을 정규식 패턴으로 나타낼 수 있습니다. 그러나 이는 다른 특수 문자도 그대로 해석한다는 것을 의미합니다 (예 : \d+
).
하지만 당신의 예제에서
, 당신은 사용할 수 있습니다 :이와Pattern.quote("C:\\windows\\system") + "\\d+";
테스트는 : System.out.println("C:\\windows\\system32".matches(Pattern.quote("C:\\windows\\system") + "\\d+"));
아니, 그런 다음에 그 읽기, 별도의 파일에 저장할 수 –
이없는 (아마도 리소스로서). – yshavit