`
soboer
  • 浏览: 1358093 次
文章分类
社区版块
存档分类
最新评论

关于代码中空白、注释等字符的统计(正则表达式的使用)

 
阅读更多

public class test {
static int normalLine = 0;
static int whiteLine = 0;
static int commentLine = 0;

public static void main(String[] args) {
File f = new File("E:\\java\\myworkspace\\game\\src");
File[] l = f.listFiles();
/*
* for (int i = 0; i < l.length; ++i) { if
* (l[i].getName().matches(".*\\.java$")) { parse(f); } }
*/
for (File child : l) {
System.out.println(child.getName());
if (child.getName().matches(".*\\.java$")) {
parse(child);
}
}
System.out.println("normalLine共有:" + normalLine);
System.out.println("whitelLine共有:" + whiteLine);
System.out.println("commentLine共有:" + commentLine);

}

private static void parse(File f) {
BufferedReader buf = null;
boolean isComment = false;
try {
buf = new BufferedReader(new FileReader(f));
String line = "";
while ((line = buf.readLine()) != null) {
line = line.trim();
if (line.matches("^[\\s&&[^\\n]]*$")) {
++whiteLine;
} else if (line.startsWith("/*") && line.endsWith("*/")) {
++commentLine;
} else if (line.startsWith("/*") && !line.endsWith("*/")) {
++commentLine;
isComment = true;
} else if (true == isComment) {
++commentLine;
if (line.endsWith("*/")) {
isComment = false;
}

} else if (line.startsWith("//")) {
++commentLine;
} else
++normalLine;
}
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}

}

分享到:
评论

相关推荐

    源码(精通正则表达式&实战正则表达式)

    在IT领域,正则表达式(Regular Expression,简称regex)是一种强大的文本处理工具,用于匹配、查找、替换或提取字符串中的特定模式。本资源“源码(精通正则表达式&实战正则表达式)”专注于JavaScript环境下的正则...

    c# 正则表达式生成工具 源代码

    9. **代码解释和示例**:源代码可能包含了一些示例代码和注释,说明了如何使用正则表达式进行匹配、替换等操作,以及如何结合C#的其他特性,如LINQ,来处理匹配结果。 10. **错误处理和性能优化**:正则表达式有时...

    Python正则表达式基础

    re.VERBOSE编译标志允许在正则表达式中添加空白和注释,使正则表达式更加易于阅读和维护。 在实际应用中,为了实现更复杂的字符串处理任务,需要综合使用正则表达式的各种功能。通过本指南的系统学习,可以更深入地...

    正则表达式计数代码行数

    本教程将详细介绍如何使用正则表达式来计算代码中的普通代码行数、注释行数和空白行数。 首先,我们要理解代码行的分类: 1. 普通代码行:不包含注释或空格的代码行。 2. 注释行:包含编程语言特定的注释标记的行,...

    python正则表达式_深入浅出

    - `re.VERBOSE`:允许在正则表达式中使用空白符和注释。 **2. 复杂正则表达式的构建** - 正则表达式可以通过简单表达式的组合来构建更复杂的表达式。 - 连接多个正则表达式时,除了边界限定条件或命名组操作外,...

    Python基础入门知识之正则表达式学习 正则表达式30分钟入门教程 共21页.pdf

    在正则表达式中,用`(?#...)`进行单行注释。 十七、贪婪与懒惰 默认情况下,`*`、`+`和`?`是贪婪的,会尽可能多地匹配。添加问号`?`使其变为懒惰,尽可能少地匹配。 十八、处理选项 使用`re.IGNORECASE`、`re....

    vim正则表达式的使用

    - `#`:通常用于注释,在vim正则表达式中,它并没有特殊含义。 - `.`:匹配任何单个字符,除了换行符。 - `\s`:匹配空白字符,包括空格、制表符、换页符等。 - `\S`:匹配非空白字符。 - `\d`:匹配数字字符(0-9)...

    正则表达式简明参考.pdf

    元字符是正则表达式中具有特殊意义的字符。例如点号(.)可以匹配除了换行符之外的任何单个字符;\w能够匹配任何字母、数字、下划线或汉字;\s匹配空白字符,包括空格、制表符、换行符等;\d匹配数字,即0-9的任意字符...

    Python正则表达式操作指南%2B-%2BUbuntu中文.pdf

    为了在正则表达式中正确地使用反斜杠,需要使用双反斜杠`\\`或使用原始字符串`r""`。 - **执行匹配**: - `match()`: 从字符串的开始位置尝试匹配正则表达式。 - `search()`: 在整个字符串中搜索匹配正则表达式的...

    python 正则表达式 re 学习.pdf

    )、大括号({})、方括号([])、圆括号(())、竖线(|)、反斜杠(\)等,这些字符在正则表达式中有特殊的意义。 正则表达式的功能主要包括: 1. 匹配:检查一个字符串是否包含另一个字符串。例如,正则表达式'...

    java \javascript 正则表达式

    正则表达式是一种强大的文本处理工具,用于在Java和JavaScript中进行字符串匹配、搜索、替换等操作。在编程中,正则表达式是处理文本数据不可或缺的一部分,它们使用特殊的字符序列来定义一个模式,该模式可以用来...

    [Python]网络爬虫(七):Python中的正则表达式教程.pdf

    - `re.X` (VERBOSE):允许正则表达式中加入空白和注释。 4. 正则表达式的基础语法 - `.`:匹配任意单个字符。 - `*`:匹配前面的子表达式零次或多次。 - `+`:匹配前面的子表达式一次或多次。 - `?`:匹配前面...

    正则表达式.pdf_电子版_pdf版

    正则表达式知识点总结 正则表达式是用于文本内容的查找和替换的模式匹配技术。它内置于其他语言或软件产品中,但本身不是一种语言或软件。...正则表达式可以应用于匹配邮箱地址、匹配代码中的注释行、匹配 IP 地址等。

    C#-------正则表达式集合

    - **`Group`类**:表示正则表达式中的组匹配结果,继承自`Capture`类。 - **`Capture`类**:表示单次匹配的一部分结果。 - **`CaptureCollection`类**:表示`Capture`对象的集合。 #### 静态方法介绍 - **`Regex....

    经典正则表达式+正则表达式检验器

    1. **字符**:正则表达式中的基本单元是字符,例如"a"、"b"或"1"等。除了这些普通字符,还有特殊字符,如".",它代表任意单个字符。 2. **元字符**:元字符有特殊的含义,如"^"表示行首,"$"表示行尾,"\d"代表数字...

    Perl正则表达式讲解

    - **`x`**:自由格式模式,允许正则表达式中包含空白和注释,增加可读性。 #### 三、操作符与示例 在Perl中,`=~`和`!~`操作符用于将正则表达式绑定到变量上,前者表示匹配,后者表示不匹配。下面通过具体示例来...

    正则表达式对字符串的完美验证

    正则表达式(Regular Expression),简称为regex,是一种强大的文本处理工具,常用于字符串的匹配、查找、替换等操作。它通过一种模式来定义字符串的规则,从而实现对特定格式的字符串进行验证和处理。在编程中,...

    正则表达式

    注释:在正则表达式中添加注释可以提高代码的可读性,例如(?#comment)。 贪婪和懒惰匹配:默认情况下,限定符是贪婪的,尽可能多地匹配字符;懒惰匹配则是尽可能少地匹配字符,通过在限定符后加?变为懒惰模式,如*?...

    【高清PDF】正则表达式速查表,吐血推荐,绝对实用!!

    - `***MENTS` 忽略正则表达式中的空白和以 `#` 开头的注释,直到行尾。 - `Pattern.MULTILINE` 允许表达式匹配多行。 - `Pattern.UNIX_LINES` 仅识别 `\n` 作为换行符。 正则表达式在 Java 中的使用包括使用 ...

    正则表达式入门书

    11. **注释**:使用`#`添加注释,帮助理解和维护正则表达式。 12. **贪婪与懒惰**:默认情况下,量词是贪婪的,即尽可能多地匹配;使用`?`变为懒惰模式,即尽可能少地匹配。 13. **处理选项**:不同的编程语言和工具...

Global site tag (gtag.js) - Google Analytics