사용자 도구

사이트 도구


java:regex

차이

문서의 선택한 두 판 사이의 차이를 보여줍니다.

차이 보기로 링크

다음 판
이전 판
java:regex [2010/12/02 20:17]
kwon37xi 새로 만듦
java:regex [2022/05/16 15:27] (현재)
kwon37xi
줄 1: 줄 1:
-====== Matcher.appendReplacement() 와 역슬래시(\,backslash) 그리고 $(dolar sign) 문제 ======+====== Java Regular Expression 정규 표현식 ====== 
 +  * [[https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/util/regex/Pattern.html|Pattern (Java SE 17 & JDK 17)]] 
 + 
 + 
 +===== Pattern과 Matcher ===== 
 +Pattern 객체는 Thread-Safe하지만, Matcher 객체는 Thread-Safe 하지 않다. 멀티 쓰레드 환경에서 사용시 Matcher 객체를 주의해서 사용해야 한다. [[http://www.javamex.com/tutorials/regular%5Fexpressions/thread%5Fsafety.shtml|Thread-safety with regular expressions in Java]] 
 + 
 +===== Matcher.appendReplacement() 와 역슬래시(\,backslash) 그리고 $(dolar sign) 문제 =====
 [[http://download.oracle.com/javase/1.4.2/docs/api/java/util/regex/Matcher.html#appendReplacement(java.lang.StringBuffer, java.lang.String)|Matcher.appendReplacement()]]를 이용해서 ''matcher.appendReplacement(sb, "역슬래시 혹은 $가 존재하는 값");''을 실행하면 오류가 발생할 수 있다. [[http://download.oracle.com/javase/1.4.2/docs/api/java/util/regex/Matcher.html#appendReplacement(java.lang.StringBuffer, java.lang.String)|Matcher.appendReplacement()]]를 이용해서 ''matcher.appendReplacement(sb, "역슬래시 혹은 $가 존재하는 값");''을 실행하면 오류가 발생할 수 있다.
  
줄 14: 줄 21:
 matcher.appendReplacement(sb, value); matcher.appendReplacement(sb, value);
 </code> </code>
 +
 +===== 새줄기호 기준으로 문자열 자르기 =====
 +[[http://stackoverflow.com/questions/454908/split-java-string-by-new-line|regex - Split Java String by New Line]]
 +<code java>
 +String[] splited = str.split("[\\r\\n]+"); // 빈 줄은 모두 사라진다.
 +</code>
 +
 +Java 8 부터는 
 +<code java>
 +String[] splited = str.split("\\R"); // 마지막 빈 줄 삭제됨
 +// split("\\R",-1) // 마지막 빈 줄 남겨두기
 +// split("\\R+") // 빈 줄 삭제
 +
 +</code>
 +
 +===== Greedy/Non-Greedy =====
 +  * [[https://docs.oracle.com/javase/tutorial/essential/regex/quant.html|Quantifiers (The Java™ Tutorials > Essential Classes > Regular Expressions)]]
 +  * [[https://examples.javacodegeeks.com/core-java/util/regex/greedy-and-non-greedy-reg-ex-matching/|Greedy and non-greedy Reg Ex matching]]
  
java/regex.1291288621.txt.gz · 마지막으로 수정됨: 2010/12/02 20:17 저자 kwon37xi