2

正規表現を使用して、単語 (動詞) が文の特定の位置に現れるかどうかを確認したい。

keyword is "work"
verb is "going"

動詞が「work」という単語の前および 3 単語 (インデックス) 内にある場合に True を返したい

文 1:"I am going to work"
および
文 2:"I am going to be work"

True動詞はキーワードの 1 語前にあるため、最初の文が返されます。

True動詞がキーワードの 2 単語前にあるため、2 番目の文が返されます。

現在matcher.start()、単語の開始文字のインデックスを返すことを知っていますが、文全体に対する単語のインデックスを見つけるにはどうすればよいですか?

4

3 に答える 3

1

これを試して

 String w1 = "I am going to work";                                       
 String w2 = "I am going to be work";                                    
 Pattern p = Pattern.compile("\\bgoing\\b(\\s+\\w+){1,3}\\s+\\bwork\\b");
 Matcher m = p.matcher(w1);                                              
 Matcher m1 = p.matcher(w2);                                             
 if (m.find()) {                                                         
   System.out.println(true);                                           
 }                                                                       
 if (m1.find()) {                                                        
   System.out.println(true);                                           

  }                                                                       
于 2013-07-12T17:49:59.623 に答える
0

この正規表現のようなものが動作するはずです:

"going(\s(\w+)){2}work"
于 2013-07-12T17:33:52.310 に答える