Java 使用正则表达式忽略字符串

Java 使用正则表达式忽略字符串,java,regex,Java,Regex,我有下面这样的字符串列表 core.advsearch.smartshow.event tpymt.pay.distaxdtls.event 我知道我可以使用pattern.compile.*.\\s*\\\.event匹配此模式; 但我想消除.*.event并替换为.xml 如何使用正则表达式实现这一点 我的预期产出是: PS:这些字符串是动态的下面的代码将用.xml替换substring.event 输出: core.advsearch.smartshow.xml tpymt.pay.di

我有下面这样的字符串列表

core.advsearch.smartshow.event
tpymt.pay.distaxdtls.event
我知道我可以使用pattern.compile.*.\\s*\\\.event匹配此模式; 但我想消除.*.event并替换为.xml

如何使用正则表达式实现这一点

我的预期产出是:


PS:这些字符串是动态的

下面的代码将用.xml替换substring.event

输出:

core.advsearch.smartshow.xml
tpymt.pay.distaxdtls.xml
core.advsearch.xml
tpymt.pay.xml

输出:

core.advsearch.smartshow.xml
tpymt.pay.distaxdtls.xml
core.advsearch.xml
tpymt.pay.xml

您需要使用正则表达式来匹配字符串中的最后一个单词

样本:


现在,上面的正则表达式将只与最后一个单词匹配,因此让我们假设您的字符串如下:core.advsearch.event.smartshow.event现在第一个事件不会被替换为.xml,而只替换它的最后一部分。

您可以使用此正则表达式:

str = str.replaceAll("[^.]+\\.event", "xml");
对于输入文本,它将生成以下输出:

core.advsearch.xml
tpymt.pay.xml

replaceAll\\.事件,.xml;?对上述评论进行投票表决。你检查过字符串API文档了吗?为什么不只是str.replace.event、.xml@R9J:示例输入的预期输出是什么?@anubhava str.replace.event、.xml;将替换已知的字符串。但是在.event之前如何处理动态字符串?我也希望删除该字符串。@marounnaroun收到。谢谢你的回答,我希望在.event之前删除通配符字符串too@R9J你能提供一个样品吗?谢谢你的方法奏效了!你能解释一下[^.]将做什么吗?是的,当然,[^.]是否定模式,它可以匹配除文字点以外的任何东西。和[^.]+将匹配除点以外的任何字符中的一个或多个。因此,简而言之,[^.]+\\.event与第一个字符串中的smartshow.event匹配。
str = str.replaceAll("[^.]+\\.event", "xml");
core.advsearch.xml
tpymt.pay.xml