프로그래밍/의문
c# Regex의 패턴은 캐싱 된다.
제페
2019. 5. 10. 13:45
반응형
정규식이 함수 안에 있으면 정규식 인스턴스가 만들어질 때마다 패턴이 컴파일이 되는 건가 해서 Regex를 static 인스턴스로 만들어두고 사용했었다.
static Regex regex = new Regex("My Pattern");
// ...
bool IsValid(string str)
{
return regex.IsMatch(str);
}
찾아보니 최근 사용한 15개 정도의 정규식은 캐싱된다고 한다.
캐싱된 정규식을 이용하려면 다음과 같이 하면 된다.
bool IsValid(string str)
{
string pattern = "My Pattern";
return Regex.IsMatch(pattern, str); // 정규식 패턴 풀에서 가져옴
}
https://docs.microsoft.com/ko-kr/dotnet/standard/base-types/best-practices
.NET의 정규식에 대한 모범 사례
.NET에서 효율적이고 효과적인 정규식을 만드는 방법을 알아봅니다.
docs.microsoft.com
서로 다른 정규식이 계속 만들어지는 게 아니라면 함수 내에서 정규식을 인스턴스화 시켜도 될 거 같다.
반응형