2016-10-27 2 views
2

검색 텍스트로 시작하는 단어를 찾기 위해 RegEx를 작성하려고합니다.RegEx로 검색 문자로 시작하는지 확인하십시오.

나는 출력 다음 얻을이 프로그램을 실행하면 :

진정한 시작 : 3 끝 : 6

Pattern p = Pattern.compile(("kh(\\w)"), Pattern.CASE_INSENSITIVE); 
String test = "Shakhir Khan"; 
Matcher m = p.matcher(test); 
System.out.println(m.find()+" start : "+m.start()+" end : "+m.end()); 

내가 원하는 것은 그것이 Shakhir에서 Khan 및하지에서 'KH'을 발견해야합니다. 그것은 단어의 중간이 아니라 시작에서만 찾아야합니다.

답변

1

사용 word boundary

Pattern.compile(("\\bkh(\\w)"), Pattern.CASE_INSENSITIVE); 
        ^^ 

단어 경계는 |이다 또는 정규식의 조건 앵커로 시작하는

(^|\b|\s)kh 

^ 때문이다, 특수 기호를 고려하지 않을 것이다. \b은 단어 경계이며 \s은 공백 문자와 일치합니다.

Demo

관련 문제