2014-09-05 2 views
1

주어진 문자열에 두 단어 사이에 +, - 또는 *가 있는지 확인하려면 정규식이 필요합니다. 다음은 몇 가지 예는 다음과 같습니다 문자열의 두 단어 사이에 +, - 또는 *가 있는지 확인하는 정규식

"wordA + wordB" -> match 
"wordA-wordB" -> match 
"wordA wordB +" -> don't match 

나는 [\\w][\\+\\*\\-][\\w].[\\+\\*\\-].을 시도했지만 모두 작동하지 않습니다. 내가 원하는 것을 확실히하기를 바랍니다. 미리 감사드립니다.

답변

2

시도 :

"\\w+\\s*[-+*]\\s*\\w+" 
2

문자 클래스 내에있는 +, * 문자를 이스케이프 할 필요가 없습니다. 그리고 앞뒤에 토큰이있는 경우 - 기호를 이스케이프해야합니다. 자바 정규식이 될 것

^\w+\s*[+*-]\s*\w+$ 

,

^\\w+\\s*[+*-]\\s*\\w+$ 

당신은 일치 기능을 사용하는 동안 앵커를 넣을 필요가 없습니다.

예 : 정규 표현식 다음

String xxx = "\\w+\\s*[+*-]\\s*\\w+"; 
String x = "wordA + wordB"; 
if(x.matches(xxx)) { 
     System.out.println("matches"); 
} 
else { 
      System.out.println("no match found "); 
} // matches 
관련 문제