Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/343.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 正则表达式从字母字符后的字符串中删除字符_Java_Regex_String - Fatal编程技术网

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
。这绝对没问题,因为你在正则表达式中使用了不同的方法。我希望你会这样做也这么看:)这非常有效。谢谢你解释你的正则表达式。这非常有效。谢谢你解释你的正则表达式。