에서 나는의 단어가 포함되어 있는지 확인하기 위해 문장을 검색하는 간단한 정규식을 가지고 있지 |에 대한 |에 |에서 여기에 거의 regexpal에서 일하고 내 정규식 :정규식은 regexpal에서 작업하지만, 자바
의 [^ A-ZA-Z] |에 대한 |의 | 나는 다음 setences에서 실행 [^ A-ZA-Z]
에서 :
show me the weather of seattle
show me the weather in seattle
show me the weather for seattle
show me the weather at seattle
및 위치 결과 :
Java 코드에서 사용할 때 전혀 작동하지 않습니다. regexpal에서 너무 시작과 끝 부분에 정의 된 공간을 보여줍니다. 누군가 내 정규 표현식에 문제가 있는지 말해 줄 수 있습니까? 문장에서 많은 단어 중 하나를 검색하는 방법
나는 항상 그 정규 표현식과 일치하지 않는 것을 의미하는 내 Java에서 조건을 얻습니다.
public class Regex
{
public static void main(String[] args)
{
String str = "show me the weather in seattle";
if(str.matches("[^A-Za-z]of|for|in|at[^A-Za-z]")){
System.out.println("Yayyy!!");
}
else{
System.out.println("OMG now what to do");
}
}
}
'matches' 문자열이 완전하게 검사합니다. 그것은 성냥을 찾는 것이 아닙니다. '. *'을 start에 추가하고 regexp – turbanoff
을 끝내십시오. "space"는 "of"앞에 있고 "at"뒤에 있습니다. [^ A-Za-z] (of | in | at) [^ A-Za-z]'또는 더 나은 '\\ W (for | in | at) \\ W' –
@turbanoff 나는 시도했다. * 그러나 문제는 날씨와 시애틀에 있기 때문에 "at"을 제거 할 때 "날씨 시애틀을 보여줘"와 일치하는 것입니다. 그래서 나는 [^ A-Za-z] – Yogesh