我有一个字符串
String string = "-minY:50 -maxY:100 -minVein:8 -maxVein:10 -meta:0 perChunk:5;";
我想以某种方式使用正则表达式获取-meta:0(替换除-meta:0之外的所有内容),我创建了一个正则表达式删除-meta:0但是我无法删除所有内容除了-meta:0 我尝试使用其他一些正则表达式,但当我有-meta:[0-9]时它忽略了整行,并且就像你可以看到我有一行代价。 这是它从String:
中删除-meta:0的方式String meta = string.replaceAll("( -meta:[0-9])", "");
System.out.println(meta);
我只是想以某种方式反转并删除除-meta之外的所有内容:[0-9]
我无法在网页上找到关于我的问题的任何内容,因为在发现这个词之后,所有内容都忽略了整行,如果有类似的内容,那就很抱歉。
答案 0 :(得分:2)
您应该在捕获的群组中捕捉您的匹配,并将其替换为替换为:
String meta = string.replaceAll("^.*(-meta:\\d+).*$", "$1");
System.out.println(meta);
//=> "-meta:0"
答案 1 :(得分:1)
根据我的理解,您希望:
a)您想从字符串
中提取meta*
b)用""
您可以执行以下操作:
String string = "-minY:50 -maxY:100 -minVein:8 -maxVein:10 -meta:0 perChunk:5;";
Pattern p = Pattern.compile(".*(-meta:[0-9]).*");
Matcher m = p.matcher(string);
if ( m.find() )
{
string = string.replaceAll(m.group(0),m.group(1));
System.out.println("After removal of meta* : " + string);
}
此代码的作用是找到meta:[0-9]
并保留它并删除其他找到的组