문자 | 용도 | 예제 |
---|---|---|
\ |
|
|
^ | 문자열의 시작. []안에서는 not의 의미 * ^A는 "A로 시작"이라기 보다는 "시작 직후에 A가 나온다"는 의미로 해석하는 것이 좋다. 즉, 시작과 끝과 같은 빈 공간을 하나의 문자로 간주하는 것이 좋다. |
|
$ | 문자열의 마지막 |
|
* | 0번 이상 반복 | |
+ | 1번 이상 반복 ( = {1,} ) | |
? | 0번 이나 1번 | |
. | new line 을 제외한 모든 글자 | |
(x) | x를 체크하고 체크한 값을 변수로 저장 | |
(?:x) | x를 체크하고 체크한 값을 변수로 저장하지 않음 | |
x|y | x 또는 y | |
x(?=y) | x후에 y가 나오고, x부분만 매칭되는 부분으로 간주 | |
x(?!y) | x가 나오고 그 뒤에 y가 있으면 안 됨 | |
{n} | 앞에 지정한 것이 n개 | |
{n,} | 앞에 지정한 것이 n개 이상 | |
{n,m} | 앞에 지정한 것이 n~m개 | |
[xyz] | x나 y나 z. []안에는 얼마든지 쓸 수 있다. | |
[x-z] | x에서 z까지 | |
[^xyz] | x,y,z를 제외한 나머지 모든 것 | |
[\b] | 백스페이스. \b와 혼동하지 말것. | 일반적인 String에서는 \b가 백스페이스를 의미한다. |
\b | 단어의 경계.[\b]와 혼동하지 말것. | |
\B | \b 를 제외한 전부 | |
\cX | 컨트롤X와 매칭. \cM은 컨트롤M과 매칭 | |
\d | 숫자.[0-9]와 같음 | |
\D | \d 를 제외한 전부 | |
\f | form-feed | |
\n | new line | |
\r | carriage return | |
\s | white space ex>탭, 띄어쓰기, \n, \r |
|
\S | \s 를 제외한 전부 | |
\t | 탭 | |
\v | vertical tab | |
\w | 알파벳+숫자+_. [A-Za-z0-9_]와 동일 | |
\W | \w 빼고 전부 | |
\n | \n이 자연수일때, ()로 지정한 n번째 정규식 | (th)가 \1로 지정된다. |
\xhh | hh는 hexacode, | Code table 보기 |
\uhhhh | hhhh는 hexacode, | 코드 번호> 3131:ㄱ 3163:ㅣ ac00:가 d7a3:힣 (javascript, java) |
함수 | 코드예제 | 코드설명 |
---|---|---|
Array RegExp.exec (to be checked) |
|
|
boolean RegExp.test(to be checked) |
");
|
실행결과: |
String RegExp.toString() |
|
실행 결과: |
String String.replace(pattern or string, to be replaced) |
|
실행 결과:
e가 2번 있지만, 첫번째 인자가 정규식이 아니라 문자열일 경우는 첫번째 것만 바꾼다. |
|
실행 결과: | |
|
실행 결과:
re에 의해서 찾아진 문자열 들은 re에서 ()로 표현된 순서대로 $1, $2와 같이 변수로 저장된다. |
|
"); document.write(newstr); |
str: 찾은 문자열 p1: ()에서 검색된 1번째 문자열. 마찬가지로 p2,p3 등도 가능 offset: str을 찾은 위치 s : 원본 문자열. |
|
Array String.match(regular expression |
"); } document.write("비교 "); var str = "ABCdEFgHiJKL"; var myResult = /[a-z]/g.exec(str); for(var cnt = 0 ; cnt < myResult.length; cnt++){ document.write(cnt +":" + myResult[cnt] +" "); } |
실행 결과: String.match(RegExp) =>g flag가 있으면 다 찾아낸다. RegExp.exec(String) =>g flag가 있어도, 한 개만 찾고 끝낸다. |
Array String.split([separator[, limit]]) |
"); } |
실행 결과: 주어진 문자열을 separator를 기준으로 limit 만큼 자른다. |
String removeTags(input)HTML tag부분을 없애준다 |
|
example> "); document.write(removeTags(str)); |
String String.trim()문자열의 앞뒤 공백을 없애준다. |
|
example> "); document.write("========" + str.trim() + "=============="); |
String String.capitalize()단어의 첫 글자를 대문자로 바꿔준다. |
|
example> |
String number_format(input)입력된 숫자를 ,를 찍은 형태로 돌려준다 |
|
example> "); document.write(number_format("-9876543.21987")+ " "); document.write(number_format("-123456789.12")+ " "); |
Pattern p = Pattern.compile("(a*)(b)"); Matcher m = p.matcher("aaaaab"); if (m.matches()) { for (int i = 0; i < m.groupCount() + 1; i++) { System.out.println(i + ":" + m.group(i)); } } else { System.out.println("not match!"); } result> 0:aaaaab 1:aaaaa 2:b 0번째는 매칭된 부분. |
String a = "I love her"; System.out.println(a.replaceAll("([A-Z])", "\"$1\"")); result> "I" love her 자바도 $1을 쓸 수 있다. |
Pattern p = Pattern.compile("cat"); Matcher m = p.matcher("one cat two cats in the yard"); StringBuffer sb = new StringBuffer(); while (m.find()) { m.appendReplacement(sb, "dog"); System.out.println(sb.toString()); } m.appendTail(sb); System.out.println(sb.toString()); result> one dog one dog two dog one dog two dogs in the yard |