我正在尝试从字符串中删除某些内容:
"name" : "12345"
总是12345可以是任何数字,有没有办法用这样的方式做到这一点:
string.replace("\"name\":\"[0-9]\",", "")
这不起作用,我尝试了几件事,但没有任何作用。
谢谢你!答案 0 :(得分:2)
在数字部分后面添加+
,以便正则表达式匹配任意长度的数字。仅[0-9]
仅匹配1位数。
此外,空间怎么样?在您的示例中,您的代码中有空格,没有空格。您可以添加\\s*
以匹配任何(包括无)空白区域。
string.replaceAll("\"name\"\\s*:\\s*\"[0-9]+\",", "")
您可以在Regex101上使用它。
Andy Turner的评论:您需要使用replaceAll
代替replace
。 replace
不会将第一个参数解释为正则表达式,但会尝试在字符串中找到该字符串。
答案 1 :(得分:1)
这将为你做到
string.replaceAll( "\"name\"\\s*:\\s*\"\\d+\"", "" )
示例:
final String string = "Some\"name\" : \"12345\"String";
System.out.println( string.replaceAll( "\"name\"\\s:\\s\"\\d+\"", "" )
将打印输出:
SomeString
它适用于任何数字
答案 2 :(得分:0)
替换“\”name \“:\”[0-9] \“至”\“name \”:\“[0-9] * \”“
答案 3 :(得分:0)
我试过像这样的正则表达式
String regex="\\w+:\\d+";
String data = "name:12345";
System.out.println(data.matches(regex));
输出为true,你可以试试这个。 \ w +匹配一个或多个单词字符,\ d +匹配一个或多个数字