この場合、(x[0-9A-Fa-f]{1,4})+
のような式を使用して、各行にバックスラッシュを付けずにUTF-8データのチャンクを識別します。
そこから、Javaのstring.split( "x")を使用して、 "x"のないバイトを表す文字列の配列を作成できます。これは、出力すべき「\ X0A \ x0f X12 \」
import java.io.*;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class Test {
public static void main(String args[]) {
String inputText = "blah blah x0ax0fx12 blah blah";
String regexMatch = "";
Pattern pattern = Pattern.compile("(x[0-9A-Fa-f]{1,4})+");
Matcher matcher = pattern.matcher(inputText);
if (matcher.find()) {
regexMatch = matcher.group(0);
}
String replacedOutput = "";
for (String splitStr : regexMatch.split("x")) {
if (!splitStr.equals("")) {
replacedOutput += "\\x" + splitStr;
}
}
System.out.println(replacedOutput);
}
}
、あなたはそれを代用することができるはずです:regexMatch
は「x0ax0fx12」のようなあなたの表現から試合を含む文字列をある場合は、このような何かを行うことができますマッチャーがファイルを見つけた時点でファイルにマッチした行に戻ってください。
今、手助けすることは不可能です。 'x [a-fA-F0-9] {2}'は '\\ $ 0'で置き換えようとするかもしれませんが、あなたが必要以上に置き換えないという保証はありません。 –
"厳密"と "斧"だけのような言葉を残しておくのに十分なスマートな正規表現を書くのは苦労します。 – VGR