我有以下字符串列表
core.advsearch.smartshow.event
tpymt.pay.distaxdtls.event
我知道我可以使用Pattern.compile(".*.\\s*.\\.event");
匹配此模式
但我想删除.*.event
并替换为.xml
如何使用正则表达式?
我的预期输出:
core.advsearch.xml
tpymt.pay.xml
PS:这些字符串是动态的
答案 0 :(得分:2)
您可以使用此正则表达式:
str = str.replaceAll("[^.]+\\.event", "xml");
对于输入文本,它将生成此输出:
core.advsearch.xml
tpymt.pay.xml
答案 1 :(得分:1)
以下代码会将子字符串.event
替换为.xml
String [] s = { "core.advsearch.smartshow.event",
"tpymt.pay.distaxdtls.event"};
for(String s2 : s)
{
System.out.println(s2.replaceAll("\\.event", ".xml"));
}
输出:
core.advsearch.smartshow.xml
tpymt.pay.distaxdtls.xml
OR
String [] s = { "core.advsearch.smartshow.event",
"tpymt.pay.distaxdtls.event"};
for(String s2 : s)
{
System.out.println(s2.replaceAll("\\.[^.]*\\.event$", ".xml"));
}
输出:
core.advsearch.xml
tpymt.pay.xml
答案 2 :(得分:1)
您需要使用正则表达式来匹配字符串
中的最后一个单词<强>样品:强>
String s = "core.advsearch.smartshow.event";
System.out.println(s.replaceAll("(\\.event)$", ".xml"));
现在上面的正则表达式只匹配最后一个单词,所以我们说你的字符串是这样的:core.advsearch.event.smartshow.event
现在第一个事件不会被.xml
替换掉它的最后一部分。