아래는 &!)(}{][^"~*?:;\+-
문자열에서 특수 문자를 대체하기 위해 작성한 정규식 이지만 정규식의 시작 및 종료 역할을하므로 어떻게 든 [
& 을 대체 할 수 없습니다 ]
. 어떻게 할 수 있습니까?
System.out.println(" &!)(}{][^\"~*?:;\\+-".replaceAll("[| |&|!|)|(|}|{|^|\"|~|*|?|:|;|\\\\|+|-]", "_"));
}
현재 출력 : _______][__________
당신은 방금 탈출해야 [
하고 ]
자바 정규식의 문자 클래스 내부를.
또한 |
리터럴로 취급되므로 문자 클래스에 대체 기호 를 넣을 필요가 없습니다 |
.
System.out.println(" &!)(}{][^\"~*?:;\\+-".replaceAll("[\\]\\[ &!)(}{^\"~*?:;\\\\+-]", "_"));
// => ___________________
참고 항목 자바 데모
† : PCRE / Python / .NET, POSIX에서는 올바른 위치에 배치하면 문자 클래스에서 대괄호를 이스케이프 할 필요가 없습니다 []ab[]
.. JavaScript에서는 항상] :를 이스케이프해야합니다 /[^\]abc[]/
. Java 및 ICU 정규 표현식에서는 항상 문자 클래스 내부 [
와 둘 모두를 이스케이프해야합니다 ]
. – Wiktor Stribiżew '17 .01.10 12:39
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다