Google AdSense (text)

hidden logo stop

Moving

거지 같은 이글루스 광고노출 정책이 싫어서,
새 보금자리(http://blog.leocat.kr/)로 이사감.

[RegEx] 정규식 대소문자 구분 없이 매치 Computer & Program

정규식을 사용하다보면 귀찮은게 대소문자 구분이다. 예를 들어, "mp3"를 대소문자 구분 없이 매치시키는데 "[Mm][Pp]3" 이런식으로 일일이 써주기는 너무 귀찮다. 이럴 때는 대소문자 구분(case sensitivity)을 하지 않도록 설정할 수 있다.

- Java
System.out.println("MP3".matches("mp3"));        // false
System.out.println("MP3".matches("(?i)mp3"))    // true

- Groovy
println ('MP3' ==~ /mp3/)          // false
println ('MP3' ==~ /(?i)mp3/)    // true

- GNU Awk
$ echo 'MP3' | awk '/mp3/ {print $0}'
$ echo 'MP3' | awk '/mp3/i {print $0}'
MP3
$

- Ruby
puts 'MP3' =~ /mp3/        // nil
puts 'MP3' =~ /mp3/i       // 0
puts 'MP3' =~ /MP3/        // 0


다른 언어들도 마찬가지로 i를 사용아면 될 것 같다. /.../로 정규식을 나타내는 경우는 마지막 슬래시 다음에 i를 사용하면 될 것이고, 자바처럼 문자열 자체가 정규식의 표현이 되는 경우는 (?i)와 같은 별도의 옵션이 있을 것이다.


- 참고
Java Doc Pattern에서 CASE_INSENSITIVE
Ruby Doc Regexp에서 Options - Ignore case

덧글

댓글 입력 영역

Google AdSense (text/image)