正規表現系列 | (xxで始まりxxで終わる抽出、分割、置換)
第 1章
リンク:正規表現シリーズ|(xx で始まり xx で終わるセグメンテーションを抽出)
序文
正規表現は文字列操作の論理式であり、機能: 特定のパターン (ルール) に従うテキストを取得および置換するためのもので、一部の文字列はいくつかの設定されたルールを通じて照合でき、これは強力な文字列照合ツールです。
1. データ処理は xx で始まり xx で終わりますか?
1. xx で始まり xx で終わるテキストを分割します。
//示例
String content = "这是一个标签<table>你好啊</table>标签结尾";
private static void meth1(String content) {
String[] tables = content.split("<table>.*?</table>");
for (String table : tables) {
System.out.println(table);
}
}
結果
输入:"这是一个标签<table>你好啊</table>标签结尾"
输出:
"这是一个标签"
"标签结尾"
2. xx で始まり xx で終わるコンテンツを抽出します
//示例
String content = "这是一个标签<table>你好啊</table>标签结尾";
private static void meth2(String content) {
Pattern pattern = Pattern.compile("<table>.*?</table>");
Matcher matcher = pattern.matcher(content);
while (matcher.find()) {
System.out.println(matcher.);
System.out.println(matcher.group().trim());
}
}
結果
输入:"这是一个标签<table>你好啊</table>标签结尾"
输出:"<table>你好啊</table>"
输入:"这是一个标签<table>你好啊1</table>标签结尾<table>你好啊2</table>结尾"
输出:
"<table>你好啊1</table>"
"<table>你好啊2</table>"
3. xx で始まり xx で終わる中間のコンテンツを抽出します。
matcher.group(1) は最初の括弧内のコンテンツを取得することを意味し、matcher.group() はコンテンツ全体を取得します
//示例
private static void meth3(String content) {
Pattern pattern = Pattern.compile("<table>(.*?)</table>");
Matcher matcher = pattern.matcher(content);
while (matcher.find()) {
String extractedText = matcher.group(1);
System.out.println(extractedText);
}
}
結果
输入:"这是一个标签<table>你好啊1</table>标签结尾<table>你好啊2</table>结尾"
输出:
"你好啊1"
"你好啊2"
4. xx で始まり xx で終わる内容を置き換えます
private static void meth4(String content) {
Pattern pattern = Pattern.compile("<table>(.*?)</table>");
Matcher matcher = pattern.matcher(content);
String result = matcher.replaceAll("##");
System.out.println(result);
}
結果
输入:"这是一个标签<table>你好啊1</table>标签结尾<table>你好啊2</table>结尾"
输出:"这是一个标签##标签结尾##结尾"
5. xx で始まり、内容を xx に置き換え、シリアル番号をマークします
private static void meth4(String content) {
String patternString = "<table>(.*?)</table>";
Pattern pattern = Pattern.compile(patternString);
Matcher matcher = pattern.matcher(content);
StringBuffer output = new StringBuffer();
int count = 1;
while (matcher.find()) {
String replacement = "<替换后内容"+count+">";
matcher.appendReplacement(output, replacement);
count++;
}
matcher.appendTail(output);
System.out.println("替换结果:" + output);
}
結果
输入:"这是一个标签<table>你好啊1</table>标签结尾<table>你好啊2</table>结尾"
输出:"这是一个标签<替换后内容1>标签结尾<替换后内容2>结尾"
要約する
上記は正規表現を用いて、あるパターン(規則)に適合する文字列を検索・置換する場合であり、今後補足・改良していきます。