HackerRank/JAVA

[작성중]Java Regex 2 - Duplicate Words

예쁜꽃이피었으면 2024. 1. 19. 09:28

https://www.hackerrank.com/challenges/duplicate-word/problem?isFullScreen=true

 

Java Regex 2 - Duplicate Words | HackerRank

Identify repeated words in the sentence, and delete all recurrences of each word after the very first word.

www.hackerrank.com

 

 

 

 

 

 

 

 

 

 

 


https://docs.oracle.com/javase/tutorial/essential/regex/pattern.html

 

Methods of the Pattern Class (The Java™ Tutorials > Essential Java Classes > Regular Expressions)

The Java Tutorials have been written for JDK 8. Examples and practices described in this page don't take advantage of improvements introduced in later releases and might use technology no longer available. See Java Language Changes for a summary of updated

docs.oracle.com

https://inpa.tistory.com/entry/JAVA-%E2%98%95-%EC%A0%95%EA%B7%9C%EC%8B%9DRegular-Expression-%EC%82%AC%EC%9A%A9%EB%B2%95-%EC%A0%95%EB%A6%AC

 

☕ 자바 정규식(Regular Expression) 사용법 💯 정리

정규표현식 이란 정규표현식(Regular Expression)이란 문자열 데이터 중에서 원하는 조건(패턴)과 일치하는 문자열 부분을 찾아내기 위해 사용하는 것으로, 미리 정의된 기호와 문자를 이용해서 작성

inpa.tistory.com

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