[JAVA] 특정 문자열 제거하기, 연속된 문자열

2023. 11. 12. 11:31JAVA

특정 문자열 자르기 

 

정규 표현식 [^a-zA-Z0-9-_.]은 특정 문자 세트가 아닌 모든 문자를 매칭하는 것입니다. 이 문자 클래스를 세분화해보자

  • ^: 문자 클래스 내에서 사용되면 해당 클래스를 부정(제외)합니다. 즉, 나열된 문자들을 제외한 모든 문자와 매치됩니다.
  • a-zA-Z0-9: 알파벳 대소문자와 숫자에 해당하는 모든 문자를 매치합니다.
  • -: 이 부분은 그 자체로 문자 -를 매치합니다.
  • _.: 이 두 문자는 각각 _ (언더스코어)와. (마침표)를 매치합니다.

따라서 [^a-zA-Z0-9-_.]는 알파벳 대소문자, 숫자, 언더스코어, 마침표, 그리고 하이픈을 제외한 모든 문자를 매치합니다.

만약 다른 문자를 포함하거나 제외하려면 문자 클래스에 해당 문자를 추가하거나 제거하면 됩니다.

  • 특정 문자 추가 예시: [^a-zA-Z0-9-_.@] (이제 @도 포함됨)
  • 특정 문자 제외 예시: [^a-zA-Z0-9-.] (이제 _가 제외됨)

원하는 동작에 따라 문자 클래스를 수정하면 됩니다.

 

연속된 문자를 특정 문자로 바꾸기

 

.replaceAll("\\.+", ".");

.replaceAll("\\.{2,}", "."); .

 

사용 예시

String example = "123...45..67.";

example = example.replaceAll("\\.{2,}", ".");

System.out.println(example);

반환 값 = 123.45.67.

 

 

 

연속되는 문자를 특정 문자로 변형하는 방법이다. 주의해야 되는 점은 특정 특수문자의 경우 백슬레시를 이용해 구분을 해줘야 한다