주어진 텍스트의 각 단어 끝에서 점만 제거하려고합니다. (자바) 예를 들어 :정규식에서 텍스트의 각 단어의 끝에서 점을 제거합니다.
input: java html. .net node.js php.
output: java html .net node.js php
감사
주어진 텍스트의 각 단어 끝에서 점만 제거하려고합니다. (자바) 예를 들어 :정규식에서 텍스트의 각 단어의 끝에서 점을 제거합니다.
input: java html. .net node.js php.
output: 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
*«주어진 텍스트에서 ** 각 단어 **의 끝에서 점만 제거하려고합니다.»* 당신의 대답은 사전에 단어의 분리를 언급해야합니다. – afsantos
@Qtax 아, 어떤 이유로 든 한 단어 입력이라고 가정했습니다. 내가 입력 한 모든 문자열을 통과하는 루프를 추가합니다. – thatidiotguy
단어의 당신의 정의에 따라 교체 할 수 : $1
와
(\w)\.(?!\S)
합니다. 어떤 단어의 끝에 .
을 모두 제거하고 공백이나 문자열의 끝에 오는 것이 좋습니다.
당신은 할 수 있습니다 : 당신이 정규 표현식을 사용하려고하는 경우
String repl = "java html. .net node.js php.".replaceAll("\\.(?!\\w)", "");
// java html .net node.js php
@EitanPerkal :이 기능이 도움이 되었습니까? – anubhava
OP 사용 사례에서 테스트를했는데 완벽하게 작동합니다. 내 필요에 맞게 작동합니다. 좋은 대답입니다! –
는 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
지금까지 코드를 게재 할 수 있습니까? –
그리고 무엇을 시도 했습니까? – fge
'.'는 정규 표현식의 특수 문자입니다. 그래서 '\ .'처럼 탈출하십시오. '/ \ w \ ./ gi' –