문자열의 특정 작은 따옴표를 % 27 (으)로 대체하려고합니다. 작은 따옴표는 다음 조건을 충족해야합니다.정규식을 사용하여 패턴 일치 및 바꾸기
- 작은 따옴표는 줄의 시작에 없습니다.
- 작은 따옴표는 줄 끝 부분에 없습니다.
- 작은 따옴표 뒤에는 쉼표가 없습니다.
- 작은 따옴표 '은', 'b'c은'나는이 작업을 수행하려면 어떻게 'A', 'B의 %의 27C'
될 것 쉼표 예를 들어
다음되지 않는다 자바?
문자열의 특정 작은 따옴표를 % 27 (으)로 대체하려고합니다. 작은 따옴표는 다음 조건을 충족해야합니다.정규식을 사용하여 패턴 일치 및 바꾸기
될 것 쉼표 예를 들어
다음되지 않는다 자바?
이유를 무시하면 정규식을 선택하는 이유이 작업을 수행하려면 다음과 같은 정규 표현식을 사용할 수 있습니다 이 첫 번째 솔루션 은 입력에 새로운 라인 문자이 없다고 가정합니다. 라인의 시작과 끝이 전체 라인의 시작과 끝을 효과적으로 시작합니다. ~. 가정이 적용되지 않는 경우, 즉 입력에 줄 바꿈 문자가 포함 된 경우 두 번째 해결 방법을 사용하십시오.
"(?<!^)(?<!,)'(?!$|,)"
는 나는이 모양 비하인드을 분리했다. Java 1.6 이상 만 지원하려는 경우
(?<!^|,)
과 같이 2 개의 look-behind를 함께 사용할 수 있습니다. 당신이 라인의
시작 대신 문자열의
시작을 원하는 경우에 , 대신 기본 시작으로, ^
및 $
는 라인의 시작과 끝을 일치하게 MULTILINE
플래그 (?m)
을 활성화 할 필요 문자열의 끝. 예 :
정규식 당신을 위해 일하는 것이을 부정적 예측을 사용하고 lookbehind :
"(?<=[^,])'(?=[^,])"
:
String repl = "'a','b'c'".replaceAll("(?<!(^|,))'(?!(,|$))", "%27");
// 'a','b%27c'
정규 표현식을 생성/컴파일하는 라인을 깨뜨리는 것이 고려 될 수도 있고, 정규식을 컴파일하는 라인을 만들 수도 있습니다. 적용하지 않는 경우 가독성을 위해 ... – Floris
지금까지 무엇을 했습니까? 우리가 작업하고 통찰력을 제공 할 수있는 출발점이 있습니까? –