String sequence = "html1body2ul3li1p5a";
Java の replace メソッドを使用して、シーケンスから最後の桁 (つまり 5) を削除したいと思います。正規表現でシーケンスの最後から見た最初の数字をキャプチャするにはどうすればよいですか? 数字以外はすべて文字です。
あなたがすることができます:
sequence = sequence.replaceAll("(.*)\\d", "$1");
最後の 0 ~ 9 文字のみを置き換える必要がある場合は、次を使用できます。
myString.replaceAll("\\d+(?=\D*$)", "")
これにより、適用された文字列の最後の数字が何も置き換えられません。
myString.replaceAll("\\d+(?=\D*$)", "")
これにより、適用された文字列の最後の数字グループが何も置き換えられません (例: 93
in sdfsdflih193a
)。
sequence.replaceFirst("\\d([^\\d]*)$", "$1");
これはどう?
String sequence = "html1body2ula3li1p5a";
System.out.println("Remove last char "+sequence.substring(1,sequence.length()-1));
System.out.println("Replace last char"+sequence.replaceAll("a$","XXX"));
これも試すことができます...
String sequence = "html1body2ul3li1p5a";
sequence = sequence.replaceAll("(\\d+)(?!.*\\d)", "");