一。java正则表达式应用
1.判断是否符合C语言函数定义规范
正则表达式:[\\s]*[\\w]+[\\s]+[\\w]+\\([[\\w]*[\\s]*[\\w]*[\\W]*]*\\)\\{[[\\s]*[\\S]*]*\\}
可能这个表达式不是很准确,还希望大家在依据你的实际需求进行进一步完善~~
java代码:
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class TestRegx {
public static void main(String[] args) {
/* 方法定义的规则如下
类型标识符 函数名(形式参数列表)
{
语句块
}
注:1.形式参数列表,以及语句块可以为空
*/
Pattern pattern=Pattern.compile("[\\s]*[\\w]+[\\s]+[\\w]+\\([[\\w]*[\\s]*[\\w]*[\\W]*]*\\)\\{[[\\s]*[\\S]*]*\\}",Pattern.COMMENTS);
String iString=" \n int sum(int a, int b){\n int c=a+b; \nreturn c;\n }";
System.out.println("定义的函数如下:\n"+iString+"\n");
Matcher matcher=pattern.matcher(iString);
boolean b=matcher.matches();
if (b) {
System.out.println("符合函数定义规范\n");
}else {
System.out.println("不符合函数定义规范\n"); }
// 定义获取函数名的正则表达式
Pattern pattern2 = Pattern.compile("([\\w]+){1}(\\([[\\w]*[\\s]*[\\w]*[\\W]*]*\\)\\{)");
Matcher matcher2=pattern2.matcher(iString);
StringBuffer buffer = new StringBuffer();
while(matcher2.find()){
buffer.append(matcher2.group());
buffer.delete(buffer.length()-1, buffer.length());
System.out.println("函数名:\n"+buffer.toString());
}
}
}
运行结果:
定义的函数如下:
int sum(int a, int b){
int c=a+b;
return c;
}
符合函数定义规范
函数名:
sum(int a, int b)