我尝试仅从给定文本中每个单词的末尾删除点。 (在java中) 例如:
input: java html. .net node.js php.
output: java html .net node.js php
感谢
答案 0 :(得分:3)
根据您对单词的定义,您可以替换:
(\w)\.(?!\S)
$1
。这将删除单词末尾的所有.
,后跟空格或字符串结尾。
答案 1 :(得分:2)
你可以这样做:
String repl = "java html. .net node.js php.".replaceAll("\\.(?!\\w)", "");
// java html .net node.js php
答案 2 :(得分:1)
for(String str : input.split(" "))
{
if(str.charAt(str.len - 1) == '.')
str = str.substr(0, str.len - 2);
//do something with str
}
如果可能的话,我会避免使用正则表达式,因为它们要慢得多。
答案 3 :(得分:0)
答案 4 :(得分:0)
基于Qtax答案的精心解决方案:
String s = "java html. .net node.js php.";
System.out.println(s);
s = s.replaceAll("(\\w)\\.(?!\\S)", "$1");
System.out.println(s);
输出:
java html .net node.js php