https://www.hackerrank.com/challenges/duplicate-word/problem?isFullScreen=true
https://docs.oracle.com/javase/tutorial/essential/regex/pattern.html
Embedded Flag Expressions
It's also possible to enable various flags using embedded flag expressions. Embedded flag expressions are an alternative to the two-argument version of compile, and are specified in the regular expression itself. The following example uses the original test harness, RegexTestHarness.java with the embedded flag expression (?i) to enable case-insensitive matching.
Enter your regex: (?i)foo
Enter input string to search: FOOfooFoOfoO
I found the text "FOO" starting at index 0 and ending at index 3.
I found the text "foo" starting at index 3 and ending at index 6.
I found the text "FoO" starting at index 6 and ending at index 9.
I found the text "foO" starting at index 9 and ending at index 12.
Once again, all matches succeed regardless of case.
The embedded flag expressions that correspond to Pattern's publicly accessible fields are presented in the following table:
ConstantEquivalent Embedded Flag Expression
Pattern.CANON_EQ | None | Match 시에 두 문자가 반영된다. 표준화된 매칭 모드를 활성화 한다. a를 나타내는 유니코드 '\u00E5'와 a와 상단고리 유니코드를 쓴 'a\u030A'를 같다고 매칭합니다. |
Pattern.CASE_INSENSITIVE | (?i) | 대소문자 구분없이 패턴을 매치시킨다. US-ASCII코드의 문자를 기준하지만, UNICODE_CASE플래그를 지정하면 유니코드의 대소문자 구분없는 match가능 |
Pattern.COMMENTS | (?x) | 공백,주석 무시 whitespace 무시, #으로 시작하는 주석 무시 (라인끝까지) |
Pattern.MULTILINE | (?m) | 다중행 모드를 사용하여 모든 ^와 $가 인식된다. 기본값은 입력값 전체를 하나의 시작과 끝으로 인식 수식 '^'는 라인의 시작과, '$'는 라인의 끝과 매치된다. '^'는 입력 문자열의 시작과 '$'는 입력문자열의 끝과 매치된다. |
Pattern.DOTALL | (?s) | .가 개행문자까지 포함하는 모든 문자로 매칭된다. 수식 '.'이 모든 문자와 매치되며, 한 라인의 끝을 나타내는 '\n'도 매치에 포함된다. |
Pattern.LITERAL | None | 입력의 메타문자와 이스케이프된 문자를 일반 문자로 취급한다. CASE_INSENSITIVE와 UNICODE_CASE느 기능이 유지된다. |
Pattern.UNICODE_CASE | (?u) | 유니코드를 | 기준으로 대소문자 구분없이 매치시킨다. 대소문자 매칭이 유니코드 표준을 따른다. 기본은 US-ASCII문자집합을 따른다. |
Pattern.UNIX_LINES | (?d) | ^와 $를 처리 시 UNIX개행을 사용 수식 '.'과 '^' 및 '$'의 매치 시에 한 라인의 끝을 의미하는 '\n'(newline)만 인식한다. |
[사용법]
// 정규식 기호로 전달
Pattern.compile("(?i)([a-z]+)")
// 상수로 전달
Pattern.compile("(^.*$)", Pattern.CASE_INSENSITIVE)
중복제거
'HackerRank > JAVA' 카테고리의 다른 글
Java Primality Test (0) | 2024.01.22 |
---|---|
Valid Username Regular Expression (0) | 2024.01.19 |
[못품]Java Regex (0) | 2024.01.17 |
java String Tokens (0) | 2024.01.17 |
Java Anagrams (0) | 2024.01.17 |