sourcecode

문자열의 특수 문자를 대체하려면 어떻게 해야 합니까?

copyscript 2022. 9. 22. 00:11
반응형

문자열의 특수 문자를 대체하려면 어떻게 해야 합니까?

특수 캐릭터가 많이 들어간 끈이 있어요.그것들을 모두 제거하고 싶지만 알파벳은 유지하세요.

이거 어떻게 해?

그것은 당신이 무엇을 의미하느냐에 달려있다.이러한 파일을 삭제하고 싶은 경우는, 다음과 같이 하십시오.
(갱신:숫자도 유지하고 싶은 것 같습니다만, 그 경우는 2행째를 사용해 주세요).

String alphaOnly = input.replaceAll("[^a-zA-Z]+","");
String alphaAndDigits = input.replaceAll("[^a-zA-Z0-9]+","");

또는 동등한 것:

String alphaOnly = input.replaceAll("[^\\p{Alpha}]+","");
String alphaAndDigits = input.replaceAll("[^\\p{Alpha}\\p{Digit}]+","");

(이 모든 것은 regex 패턴을 미리 컴파일하여 일정하게 저장함으로써 대폭 개선됩니다.)

또는 Guava를 사용하는 경우:

private static final CharMatcher ALNUM =
  CharMatcher.inRange('a', 'z').or(CharMatcher.inRange('A', 'Z'))
  .or(CharMatcher.inRange('0', '9')).precomputed();
// ...
String alphaAndDigits = ALNUM.retainFrom(input);

하지만 악센트 문자를 여전히 아스키처럼 감각적인 문자로 바꾸고 싶다면 다음 질문을 살펴보세요.

이거 쓰고 있어요.

s = s.replaceAll("\\W", ""); 

문자열에서 모든 특수 문자를 바꿉니다.

여기서

\w : [ a - zA - Z _ 0 - 9 ]의 줄임말 문자

\W : 단어가 아닌 문자

영숫자를 유지하려면 , 다음의 방법을 사용합니다.

replaceAll("[^a-zA-Z0-9]", "");

알파벳 문자만 유지하려면 이 항목을 사용하십시오.

replaceAll("[^a-zA-Z]", "");

특수문자는 다음과 같이 바꿉니다.

replaceAll("\\your special character","new character");

예: *의 모든 항목을 공백으로 바꿉니다.

replaceAll("\\*","");

*이 문장은 한 번에 한 가지 유형의 특수 문자만 대체할 수 있습니다.

안제이 도일의 대답의 예를 따라, 더 나은 해결책은org.apache.commons.lang3.StringUtils.stripAccents():

package bla.bla.utility;

import org.apache.commons.lang3.StringUtils;

public class UriUtility {
    public static String normalizeUri(String s) {
        String r = StringUtils.stripAccents(s);
        r = r.replace(" ", "_");
        r = r.replaceAll("[^\\.A-Za-z0-9_]", "");
        return r;
    }
}
string Output = Regex.Replace(Input, @"([ a-zA-Z0-9&, _]|^\s)", "");

여기서는 공백, 쉼표 및 앰퍼샌드를 제외한 모든 특수문자가 교체됩니다.다음 정규식을 사용하여 공백, 쉼표 및 앰퍼샌드를 생략할 수도 있습니다.

string Output = Regex.Replace(Input, @"([ a-zA-Z0-9_]|^\s)", "");

여기서 Input은 문자를 대체하기 위해 필요한 문자열입니다.

여기 문자열에서 가능한 모든 특수 문자를 제거하는 기능이 있습니다.

let name = name.replace(/[&\/\\#,+()$~%!.„'":*‚^_¤?<>|@ª{«»§}©®™ ]/g, '').toLowerCase();

문자열에서 기본 정규식을 사용하여 모든 특수 문자를 찾거나 패턴 및 매처 클래스를 사용하여 사용자 정의 문자열을 검색/수정/삭제할 수 있습니다.이 링크에는 정규 표현에 대한 간단하고 알기 쉬운 예가 몇 가지 있습니다.http://www.vogella.de/articles/JavaRegularExpressions/article.html

window pc의 charactermap 도구에서 해당 정크 문자의 Unicode를 가져와 \u를 추가할 수 있습니다.\u00a9(저작권 기호).이 문자열은 특정 정크 문자에서 사용할 수 있습니다. 정크 문자를 삭제하지 말고 적절한 유니코드로 대체하십시오.

스페이스의 경우는, 「^a-z A-Z 0-9」를 사용합니다.

언급URL : https://stackoverflow.com/questions/4283351/how-to-replace-special-characters-in-a-string

반응형