2014-09-24 32 views
1

我已经看到要将“,”替换为“。”。通过使用“。$”|“,$”,但这种逻辑不适用于字母表。 我需要一个单词的最后一个字母替换到字符串包含EXAMPLE_TEST用java 这是我的代码如何使用正则表达式将最后一个字母替换为java中的另一个字母

Pattern replace = Pattern.compile("n$");//here got the real problem 
    matcher2 = replace.matcher(EXAMPLE_TEST); 
    EXAMPLE_TEST=matcher2.replaceAll("k"); 

我也尝试“// n $的”,另一封信中所有的单词“\ n $”等 请帮助我获得解决方案 输入文本=> njan艾曼 输出文本=> njak aymak

+0

输入中最后没有字母'n'。你的投入和预期产出是什么? – 2014-09-24 06:02:13

+0

您应该提供一个示例输入/输出和预期输出。你的表达方式是:“一个单词的最后一个字母替换另一个单词中的所有单词”这听起来是你想要替换任何后跟一个空格的字母:'(\ w)(?= \ s)' – alfasin 2014-09-24 06:04:33

+0

String EXAMPLE_TEST =“njan ayman”;它包含ñ – Ayman 2014-09-24 06:05:22

回答

2

您可以使用前瞻和组匹配:

String EXAMPLE_TEST = "njan ayman"; 
    s = EXAMPLE_TEST.replaceAll("(n)(?=\\s|$)", "k"); 
    System.out.println("s = " + s); // prints: s = njak aymak 

说明:

(n) - the matched word character 
(?=\\s|$) - which is followed by a space or at the end of the line (lookahead) 

上面仅是一个实例!如果你想切换以期每逗号中间行应改为:

s = s.replaceAll("(,)(?=\\s|$)", "\\."); 
+0

@AvinashRaj没关系,'n'只是一个例子,OP说他试着用逗号切换一段时间,这意味着他必须使用:'s = s.replaceAll(“(,)( ?= \\ s | $)“,”\\。“);' – alfasin 2014-09-24 06:21:24

+0

当然不是。同样,上面的代码就是一个例子,OP将不得不按照他想要的方式在匹配的组中切换表达式:它可以是“(,)”,“(n)”,“(\\ w)”或其他。 – alfasin 2014-09-24 06:23:51

+0

假设我怎么能找到间距之前n,实际上我正在努力使英语马拉雅拉姆语transilitration – Ayman 2014-09-24 06:34:18

2

相反串$锚年底,使用word boundary \b

String s = "njan ayman"; 
s = s.replaceAll("n\\b", "k"); 
System.out.println(s); //=> "njak aymak" 
+0

感谢这项工作 – Ayman 2014-09-24 06:17:04

0

下面是我设置达:

(?=.\b)\w

这在Java中需要被转义为以下几点:

(?=.\\b)\\w

它转换为类似 “后一个字符(\ w)的(?=)任何单个字符(。)在一个字的末尾(\ B)”。

String s = "njan ayman aowkdwo wdonwan. wadawd,.. wadwdawd;"; 
s = s.replaceAll("(?=.\\b)\\w", ""); 
System.out.println(s); //nja ayma aowkdw wdonwa. wadaw,.. wadwdaw; 

这将删除所有单词的最后一个字符,但会留下非字母数字字符。您只能通过将.更改为其他内容来指定要删除/替换的特定字符。

但是,其他答案是非常好的,可能会达到你正在寻找的。

+0

这也工作:-) – Ayman 2014-09-24 06:53:31

-1
if (word.endsWith("char oldletter")) { 
    name = name.substring(0, name.length() - 1 "char newletter"); 
} 
+0

这将甚至编译? – Pang 2015-11-12 06:17:21

相关问题