> 백엔드 개발 > C++ > C# Regex에서 숫자 일치하는 경우 왜`\ d '가`[0-9]`보다 덜 효율적인 이유는 무엇입니까?

C# Regex에서 숫자 일치하는 경우 왜`\ d '가`[0-9]`보다 덜 효율적인 이유는 무엇입니까?

Barbara Streisand
풀어 주다: 2025-01-31 18:26:09
원래의
939명이 탐색했습니다.

c#정규식 의 이유는

보다 낮습니다. 최근 성능 테스트에 따르면 C#정규식 엔진에서 의 수와 일치하는 데 사용되는 효율은 예기치 않게 d[0-9] 문자 세트보다 낮습니다. 이 발견은 두 가지 문제를 일으켰습니다 : <.> 1. 왜 를 설정하는 것보다 범위가

더 높은 효율이 높은 이유는 무엇입니까? <..> 사람들은 범위가 구체적이고 좁은 문자 범위를 다루기 때문에 범위가 더 효율적이라고 생각할 수 있으며, 컬렉션에는 10 개의 숫자가 모두 명확하게 나열되어 있습니다. 그러나 테스트 결과는 두 방법 사이의 성능 차이가 가장 적합하다는 것을 보여줍니다.

<.> 2. 왜 의 효율이 보다 낮습니까? <..> 테스트에 따르면 의 효율은 보다 상당히 낮다는 것을 발견했습니다. d는 일반적으로 의 약어로 간주되기 때문에 이것은 특히 수수께끼입니다. 추가 조사는 근본적인 차이를 보여줍니다 [0-9] 일치하는 유니 코드 번호, 일치하는 ASCII 번호 [0123456789] ASCII 번호 만 (0-9), 일치 모든 유니 코드 숫자 . 여기에는 페르시아 숫자 (۱۲۳۴۵۶۷۸۹) 및 다바 가리 숫자 (०१२३४५६७८९)와 같은 다른 언어 및 캐릭터의 문자가 포함됩니다. 이를 증명하기 위해 다음 코드는 모든 유니 코드 번호를 포함하는 문자열을 생성합니다.

생성 된 문자열은 아랍어, 태국, Khamno 및 기타 캐릭터의 문자를 포함하여 숫자로 식별 된 다양한 문자를 보여줍니다. 성능 충격 [0-9] [0123456789] 와 의 성능 차이를 설명하는 넓은 범위의 문자 범위 (유니 코드 번호 및 ASCII 번호)를 확인하십시오. ASCII 번호 만 사용하면

를 사용하면

보다 더 나은 성능이 생성됩니다.

위 내용은 C# Regex에서 숫자 일치하는 경우 왜`\ d '가`[0-9]`보다 덜 효율적인 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿