Java 正则表达式从字母字符后的字符串中删除字符
我有一串字符,Java 正则表达式从字母字符后的字符串中删除字符,java,regex,string,Java,Regex,String,我有一串字符, String a=“abcd000324” 我想使用正则表达式从字符串中删除0,以生成字符串abcd324 是否有正则表达式值来替换字母字符后的某个字符(即0),但不删除324。如果数字出现在字符串的后面,则它也需要工作,即abcd0034505应导致abcd34505您可以使用此正则表达式进行搜索: ^(\D*)0+ 并使用“$1”替换它,这是第一组\D*的反向引用,即0个或更多非数字字符 Java代码: String repl = input.replaceFirst("
String a=“abcd000324”代码>
我想使用正则表达式从字符串中删除0,以生成字符串abcd324
是否有正则表达式值来替换字母字符后的某个字符(即0),但不删除324。如果数字出现在字符串的后面,则它也需要工作,即abcd0034505
应导致abcd34505
您可以使用此正则表达式进行搜索:
^(\D*)0+
并使用“$1”
替换它,这是第一组\D*
的反向引用,即0个或更多非数字字符
Java代码:
String repl = input.replaceFirst("^(\D*)0+", "$1");
您可以使用此正则表达式进行搜索:
^(\D*)0+
并使用“$1”
替换它,这是第一组\D*
的反向引用,即0个或更多非数字字符
Java代码:
String repl = input.replaceFirst("^(\D*)0+", "$1");
为避免将正则表达式的部分替换回自身,请使用正向查找((?)为避免将正则表达式的部分替换回自身,请使用正向查找((?“在字母数字字符之后”)…真的是指“在字母字符之后”?在以下情况下应该怎么做:ABCD0505005
?这将导致ABCD505055,我只想删除字母值后的整数值,直到出现另一个值。“字母数字字符后”…真的是指“字母字符后”?在以下情况下应该怎么做:ABCD0505005
?这将导致ABCD505055,我只想删除字母值后的整数值,直到出现另一个值。(?@anubhava。谢谢你的提示。只需要一个字符的匹配就可以了,所以已经解决了。@anubhava很抱歉在我写了你的答案后,无耻地将你的答案中的所有元素都合并到我的答案中,就像正则表达式示例一样,并使用了replaceFirst
。这绝对没问题,因为你在正则表达式中使用了不同的方法。我希望你会这样做也这样看:)(?@anubhava。谢谢你的提示。只需要一个字符的匹配就可以了,所以已经解决了。@anubhava很抱歉在我写了你的答案后,无耻地将你的答案中的所有元素都合并到我的答案中,就像正则表达式示例一样,并使用了replaceFirst
。这绝对没问题,因为你在正则表达式中使用了不同的方法。我希望你会这样做也这么看:)这非常有效。谢谢你解释你的正则表达式。这非常有效。谢谢你解释你的正则表达式。