정규식을 사용하다보면 귀찮은게 대소문자 구분이다. 예를 들어, "mp3"를 대소문자 구분 없이 매치시키는데 "[Mm][Pp]3" 이런식으로 일일이 써주기는 너무 귀찮다. 이럴 때는 대소문자 구분(case sensitivity)을 하지 않도록 설정할 수 있다.
- Java
- Groovy
- GNU Awk
- Ruby
다른 언어들도 마찬가지로 i를 사용아면 될 것 같다. /.../로 정규식을 나타내는 경우는 마지막 슬래시 다음에 i를 사용하면 될 것이고, 자바처럼 문자열 자체가 정규식의 표현이 되는 경우는 (?i)와 같은 별도의 옵션이 있을 것이다.
- 참고
Java Doc Pattern에서 CASE_INSENSITIVE
Ruby Doc Regexp에서 Options - Ignore case
- Java
System.out.println("MP3".matches("mp3")); // false
System.out.println("MP3".matches("(?i)mp3")) // true
System.out.println("MP3".matches("(?i)mp3")) // true
- Groovy
println ('MP3' ==~ /mp3/) // false
println ('MP3' ==~ /(?i)mp3/) // true
println ('MP3' ==~ /(?i)mp3/) // true
- GNU Awk
$ echo 'MP3' | awk '/mp3/ {print $0}'
$ echo 'MP3' | awk '/mp3/i {print $0}'
MP3
$
$ echo 'MP3' | awk '/mp3/i {print $0}'
MP3
$
- Ruby
puts 'MP3' =~ /mp3/ // nil
puts 'MP3' =~ /mp3/i // 0
puts 'MP3' =~ /MP3/ // 0
puts 'MP3' =~ /mp3/i // 0
puts 'MP3' =~ /MP3/ // 0
다른 언어들도 마찬가지로 i를 사용아면 될 것 같다. /.../로 정규식을 나타내는 경우는 마지막 슬래시 다음에 i를 사용하면 될 것이고, 자바처럼 문자열 자체가 정규식의 표현이 되는 경우는 (?i)와 같은 별도의 옵션이 있을 것이다.
- 참고
Java Doc Pattern에서 CASE_INSENSITIVE
Ruby Doc Regexp에서 Options - Ignore case
덧글