我在Java中,以下正則表達式 -正則表達式不考慮空間
Pattern p = Pattern.compile("int|float|char\\s\\w");
但仍這是符合「intern
」了。
整個代碼 -
package regex;
import java.io.*;
import java.util.*;
import java.util.regex.*;
public class Regex {
public static void main(String[] args) throws IOException{
// TODO code application logic here
int c = 0;
BufferedReader bf = new BufferedReader(new FileReader("new.c"));
String line;
Pattern p = Pattern.compile("int|float|char\\s\\w");
Matcher m;
while((line = bf.readLine()) != null) {
m = p.matcher(line);
if(m.find()) {
c++;
}
}
System.out.println(c);
}
}
不是重複的,引用的問題是關於貪婪,這個是關於運算符的優先級。 – SJuan76
嘗試發佈文件內容,然後你想閱讀,以幫助解答 – Abe
[正則表達式只匹配整個單詞](https://stackoverflow.com/questions/1751301/regex-match-entire-words-only )。所有你需要的是''int \\ b | float | char \\ s \\ w「'以避免在'intern'中匹配'int'。 –