정규표현식은 문자열에 나타나는 특정 문자 조합과 대응시키기 위해 사용되는 패턴입니다.
각 언어군에 정규표현식과 매치되는 메소드를 사용하면 쉽게 사용할 수 있습니다.
본 문서는 주로 Javascript 와 일부 Java 를 기준으로 작성하였으며,
Javascript 공식 문서를 기준점으로 잡고 있습니다.
이론 및 퍼포먼스 관련은 이 포스트 를 참고하자.
2021년 12월 21일 에 아래 내용을 추가하였습니다.
정규표현식을 잘못 사용하거나 남용하면 성능이 급격히 하락하는 문제를 맞이할 수 있습니다. 다음의 포스트들을 참고하셔야 할 것 같습니다.
Top 10 Easy Performance Optimisations in Java
Regex (정규표현식) vs contains / find / in
정규표현식성능백트래킹
문법 참고는 dreamcoding github
문법 설명은 정규표현식, 더이상 미루지 말자
| 또는
() 그룹
[] 문자셋
[^] 부정문자셋
(?:) 찾지만 기억하지는 않음
? 없거나 있거나
\b 단어 경계
\B 단어 경계가 아님
^ 문장의 시작
$ 문장의 끝
\ 특수문자가 아닌 숫자
. 어떤 글자(줄바꿈 문자 제외)
\d digit 숫자 (digit 은 10진수)
\D digit 숫자 아님
\w word 문자
\W word 문자 아님
\s space 공백
\S space 공백 아님
public class RegexTest{
public static void main(String[] args){
RegexTest obj=new RegexTest();
text="MyPorfile123"; // MyProfile123
text=obj.transfer(text); // 123
}
String transfer(String text){
String arr[]=text.split("");
text="";
for(int i=0;i<arr.length;i++)
text+=arr[i].matches("[0-9]+") ? text : "";
return text;
}
}
public class RegexTest{
public static void main(String[] args){
RegexTest obj=new RegexTest();
text="MyPorfile123"; // MyProfile123
text=obj.transfer(text); // yrofile
}
String transfer(String text){
String arr[]=text.split("");
text="";
for(int i=0;i<arr.length;i++)
text+=arr[i].matches("[a-z]+") ? text : "";
return text;
}
}
public class RegexTest{
public static void main(String[] args){
RegexTest obj=new RegexTest();
text="MyPorfile123"; // MyProfile123
text=obj.transfer(text); // MP
}
String transfer(String text){
String arr[]=text.split("");
text="";
for(int i=0;i<arr.length;i++)
text+=arr[i].matches("[A-Z]+") ? text : "";
return text;
}
}
public class RegexTest{
public static void main(String[] args){
RegexTest obj=new RegexTest();
text="MyProfile123"; // "MyProfile12"
text=obj.transfer(text); // mYpROFILE12
text=obj.transfer(text); // MyProfile12
}
String transfer(String text){
String arr[]=text.split("");
text="";
for (int i=0; i<arr.length; i++){
text+=arr[i].matches("[a-z]+") ? arr[i].toUpperCase() : arr[i].matches("[A-Z]+") ? arr[i].toLowerCase() : arr[i];
return text;
}
}
사이트 링크 : https://regexr.com/5mhou
사이트 강좌 : https://www.youtube.com/watch?v=t3M6toIflyQ