我尝试仅从给定文本中每个单词的末尾删除点。(在java中)例如:
input: java html. .net node.js php.
output: java html .net node.js php
谢谢
根据您对单词的定义,您可以替换:
(\w)\.(?!\S)
与$1
. 这将删除.
单词末尾的所有内容,然后是空格或字符串结尾。
你可以做:
String repl = "java html. .net node.js php.".replaceAll("\\.(?!\\w)", "");
// java html .net node.js php
for(String str : input.split(" "))
{
if(str.charAt(str.len - 1) == '.')
str = str.substr(0, str.len - 2);
//do something with str
}
如果可能的话,我会避免使用正则表达式,因为它们要慢得多。
基于 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