java 1.6 中的字符串操作
String Manipulation in java 1.6
字符串可以像下面这样。使用 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=.*;", "");
但不工作。
我想出了这个 qwq=\d*\;?
并且它有效。它匹配 qwq=
之后的 0 位或更多位小数。它还有一个可选参数 ;
因为您的示例似乎包括这并不总是附加在数字之后。
我知道问题与 javascript 无关,但这是一个您可以看到正则表达式工作的示例:
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");
}
您可以像这样使用正则表达式删除那种字符串。使用此代码,
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
.*
适用于多字符,不限于数字。使用仅适用于数字串的东西
abc.replaceAll(";qwq=\d+", "")
^^
Any Number
请尝试
abc = abc.replaceAll("qwq=[0-9]*;", "");
如果您不在乎太多方便,您可以通过简单的字符串操作(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
另一个:
abc.replaceAll(";qwq=[^;]*;", ";");
您必须在 replaceAll 方法中使用组。
这是一个例子:
abc.replaceAll("(.*;)(qwq=\d*;)(.*)", "");
您可以在以下位置找到有关群组的更多信息:http://www.vogella.com/tutorials/JavaRegularExpressions/article.html
字符串可以像下面这样。使用 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=.*;", "");
但不工作。
我想出了这个 qwq=\d*\;?
并且它有效。它匹配 qwq=
之后的 0 位或更多位小数。它还有一个可选参数 ;
因为您的示例似乎包括这并不总是附加在数字之后。
我知道问题与 javascript 无关,但这是一个您可以看到正则表达式工作的示例:
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");
}
您可以像这样使用正则表达式删除那种字符串。使用此代码,
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
.*
适用于多字符,不限于数字。使用仅适用于数字串的东西
abc.replaceAll(";qwq=\d+", "")
^^
Any Number
请尝试
abc = abc.replaceAll("qwq=[0-9]*;", "");
如果您不在乎太多方便,您可以通过简单的字符串操作(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
另一个:
abc.replaceAll(";qwq=[^;]*;", ";");
您必须在 replaceAll 方法中使用组。
这是一个例子:
abc.replaceAll("(.*;)(qwq=\d*;)(.*)", "");
您可以在以下位置找到有关群组的更多信息:http://www.vogella.com/tutorials/JavaRegularExpressions/article.html