C# - 문자열에서 영어만 추출

문자열에서 영어만 추출하는 방법을 소개합니다. 영어 외에 다른 문자들은 모두 제거합니다.

1. 정규표현식(Regex)으로 영어만 추출

Regex.Replace(string, pattern, replacement)는 string에서 정규표현식 pattern에 해당하는 문자열을 찾아서 모두 replacement로 변경합니다.

아래 예제에서 [^a-zA-Z]는 영어를 제외한 모든 문자를 의미합니다. 이 패턴으로 영어가 아닌 문자들을 모두 찾고 빈 문자열로 변환하여 제거할 수 있습니다.

using System;
using System.Text.RegularExpressions;

namespace Example {
    public class Program {
        public static void Main(string[] args) {

            string str = "AA**bb#@$CC 가나다-123";

            string result = Regex.Replace(str, @"[^a-zA-Z]", "");
            Console.WriteLine(result);
        }
    }
}

Output:

AAbbCC

정규표현식에서 ^는 not의 의미입니다. [a-z]가 a에서 z에 해당하는 문자를 의미한다면, [^a-z]는 a-z에 해당하지 않는 문자를 의미합니다.

2. 영어, 띄어쓰기만 추츨

영어와 띄어쓰기를 제외한 다른 문자들을 모두 제거하려면, [^a-zA-Z\s] 처럼 패턴에 띄어쓰기를 의미하는 \s를 추가하면 됩니다.

using System;
using System.Text.RegularExpressions;

namespace Example {
    public class Program {
        public static void Main(string[] args) {

            string str = "AA**bb#@$CC 가나다-123dd";

            string result = Regex.Replace(str, @"[^a-zA-Z\s]", "");
            Console.WriteLine(result);
        }
    }
}

Output:

AAbbCC dd
Loading script...

Related Posts

codechachaCopyright ©2019 codechacha