Java regular expressions are simple to use
- 2020-04-01 04:30:52
- OfStack
One: grab the Email address in the web page
Matches text in a web page with regular expressions
[[-]] \ \ w + @ [[-]] \ \ w + \ \. \ \ w +
Split and extract web content
import java.io.BufferedReader;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class EmailSpider {
public static void main(String[] args) {
try {
BufferedReader br = new BufferedReader(new FileReader("C:\emailSpider.html"));
String line = "";
while((line=br.readLine()) != null) {
parse(line);
}
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
private static void parse(String line) {
Pattern p = Pattern.compile("[\w[.-]]+@[\w[.-]]+\.[\w]+");
Matcher m = p.matcher(line);
while(m.find()) {
System.out.println(m.group());
}
}
}
Print result:
(link: #)
(link: #)
(link: #)
(link: #)
(link: #)
(link: #)
(link: #)
(link: #)
(link: #)
(link: #)
(link: #)
(link: #)
(link: #)
Now that you have so many email addresses, using JavaMail's knowledge, you can send spam in a group, hehe!!
Two: code statistics
import java.io.BufferedReader;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
public class CodeCounter {
static long normalLines = 0;//Normal line of code
static long commentLines = 0;//Comment lines
static long whiteLines = 0;//Blank lines
public static void main(String[] args) {
//Find a folder under which there is no folder, there is no recursive processing of files that are not in the same folder
File f = new File("E:\Workspaces\eclipse\Application\JavaMailTest\src\com\java\mail");
File[] codeFiles = f.listFiles();
for(File child : codeFiles){
//Only count Java files
if(child.getName().matches(".*\.java$")) {
parse(child);
}
}
System.out.println("normalLines:" + normalLines);
System.out.println("commentLines:" + commentLines);
System.out.println("whiteLines:" + whiteLines);
}
private static void parse(File f) {
BufferedReader br = null;
//Indicates whether the comment starts
boolean comment = false;
try {
br = new BufferedReader(new FileReader(f));
String line = "";
while((line = br.readLine()) != null) {
//Remove any possible white space before the comment /*
line = line.trim();
//Empty line because the newline n was removed when readLine() fetched the string
//So it's not "^[\s&&[^\n]]*\n$"
if(line.matches("^[\s&&[^\n]]*$")) {
whiteLines ++;
} else if (line.startsWith("")) {
//Statistical multi-line
commentLines ++;
comment = true;
} else if (line.startsWith("")) {
//Statistics line /**/
commentLines ++;
} else if (true == comment) {
//Statistics * /
commentLines ++;
if(line.endsWith("*/")) {
comment = false;
}
} else if (line.startsWith("//")) {
commentLines ++;
} else {
normalLines ++;
}
}
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} finally {
if(br != null) {
try {
br.close();
br = null;
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
}
Above is a simple application of Java regular expressions, I hope to help you learn Java regular expressions.