字符串可以如下所示。使用java1.6
String example = "<number>;<name-value>;<name-value>";
String abc = "+17005554141;qwq=1234;ddd=ewew;otg=383";
String abc = "+17005554141;qwq=123454";
String abc = "+17005554141";
我想从字符串中删除qwq=1234
。 qwq
是固定的,其值可以VARY
,例如ex 1234或12345等
预期结果:
String abc = "+17005554141;ddd=ewew;otg=383";
String abc = "+17005554141"; \\removed ;qwq=123454
String abc = "+17005554141";
我尝试了
abc = abc.replaceAll(";qwq=.*;", "");
但不起作用。
答案 0 :(得分:2)
我想到了这个qwq=\d*\;?
,它可以正常工作。它匹配qwq=
之后的0个或更多小数。它还有一个可选参数;
,因为您的示例似乎包括该参数并不总是附加在数字之后。
我知道问题不是关于javascript的,但是在下面的示例中,您可以看到regex起作用:
const regex = /qwq=\d*\;?/g;
var items = ["+17005554141;qwq=123454",
"+17005554141",
"+17005554141;qwq=1234;ddd=ewew;otg=383"];
for(let i = 0; i < items.length; i++) {
console.log("Item before replace: " + items[i]);
console.log("Item after replace: " + items[i].replace(regex, "") + "\n\n");
}
答案 1 :(得分:2)
您可以使用正则表达式删除此类字符串。使用此代码,
String example = "+17005554141;qwq=1234;ddd=ewew;otg=383";
System.out.println("Before: " + example);
System.out.println("After: " + example.replaceAll("qwq=\\d+;?", ""));
这将提供以下输出,
Before: +17005554141;qwq=1234;ddd=ewew;otg=383
After: +17005554141;ddd=ewew;otg=383
答案 2 :(得分:1)
.*
适用于多字符,不限于数字。使用仅适用于数字串的内容
abc.replaceAll(";qwq=\\d+", "")
^^
Any Number
答案 3 :(得分:1)
请尝试
abc = abc.replaceAll("qwq=[0-9]*;", "");
答案 4 :(得分:0)
如果您不太在意便利,则可以通过简单的String操作(indexOf
,replace
和substring
)来实现。这也许是执行此操作最传统的方法:
private static String replaceQWQ(String target)
{
if (target.indexOf("qwq=") != -1) {
if (target.indexOf(';', target.indexOf("qwq=")) != -1) {
String replace =
target.substring(target.indexOf("qwq="), target.indexOf(';', target.indexOf("qwq=")) + 1);
target = target.replace(replace, "");
} else {
target = target.substring(0, target.indexOf("qwq=") - 1);
}
}
return target;
}
小测试:
String abc = "+17005554141;qwq=1234;ddd=ewew;otg=383";
String def = "+17005554141;qwq=1234";
System.out.println(replaceQWQ(abc));
System.out.println(replaceQWQ(def));
输出:
+17005554141;ddd=ewew;otg=383
+17005554141
答案 5 :(得分:0)
另一个:
abc.replaceAll(";qwq=[^;]*;", ";");
答案 6 :(得分:0)
您必须在replaceAll方法中使用组。
这里是一个例子:
abc.replaceAll("(.*;)(qwq=\\d*;)(.*)", "$1$3");
有关您可以在以下位置找到的网上论坛的更多信息:http://www.vogella.com/tutorials/JavaRegularExpressions/article.html