我正在研究一个我满足这个要求的实用程序:
例如string是:
输入:
它提供@ p1最新消息,来自印度的@ p2和全球@ p3的视频。获取@ p5 Business,@ p5
的今日新闻头条上面的字符串将变为:
输出:
它提供来自印度的@ p1 @最新新闻,视频@ p2 @以及@ p3 @ the world。从@ p4 @ Business获取今日新闻头条,@ p5 @
任何快速帮助表示赞赏。
感谢。
答案 0 :(得分:1)
使用string.replaceAll
功能,如下所示。
string.replaceAll("(@p\\d+)", "$1@");
\d+
匹配一个或多个数字。 ()
调用捕获组,捕获由()
内的模式匹配的字符,并将捕获的字符存储到相应的组中。稍后我们可以通过指定像$1
或$2
这样的索引来引用这些字符。
示例:
String s = "It provides @p1 latest news, videos @p2 from India and @p3 the world. Get today's news headlines from @p5 Business, @p5";
System.out.println(s.replaceAll("(@p\\d+)", "$1@"));
输出:
It provides @p1@ latest news, videos @p2@ from India and @p3@ the world. Get today's news headlines from @p5@ Business, @p5@
答案 1 :(得分:0)
您可以尝试这样的正则表达式:
public static void main(String[] args) {
String s = "it provides @p1 latest news, videos @p2 from India and @p3 the world. Get today's news headlines from @p5 Business, @p5";
System.out.println(s.replaceAll("(@p\\d+)(?=\\s+|$)", "$1\\@"));
}
O / P:
it provides @p1@ latest news, videos @p2@ from India and @p3@ the world. Get today's news headlines from @p5@ Business, @p5@
说明:
(@p\\d+)(?=\\s+|$) --> `@p` followed by any number of digits (which are all captured) followed by a space or end of String (which are matched but not captured..)