替换泛型字符串的出现次数

时间:2014-04-11 18:30:30

标签: java regex

我对正则表达式一直不够好,我认为这是它的工作。

我有一个像www.somelink/phoyto.jpg/?sz=50

这样的链接

我需要用我的价值取代50,让我们说100。麻烦的是,我无法确定,这将永远是sz=50而不是sz=150或{{1或任何其他值。

我需要的是找到包含sz=10的字符串,并将其替换为'sz' + number

当然,我可以手动做到这一点"在一些for循环中,但这不会是非常有效的。

3 个答案:

答案 0 :(得分:3)

str = "www.somelink/phoyto.jpg/?sz=50";
str.replaceall("sz=\\d+", "sz=100");

\d是数字的java模式。 +代表一个或多个数字。 replaceall替换所有sz=<number>

这是一个方便的java在线正则表达式测试程序:http://www.regexplanet.com/advanced/java/index.html

答案 1 :(得分:2)

这应该有效:

String link = "www.somelink/phoyto.jpg/?sz=50";
link = link.replaceFirst("sz=\\d+", "sz=100");
System.out.println(link);

答案 2 :(得分:1)

这非常简单,这种模式应该有效:

(sz=\d+)

<强>代码:

String result = searchText.replaceAll("(sz=\\d+)", "sz100");

示例:

http://regex101.com/r/mB3xT9