> 백엔드 개발 > C++ > \ d는 Regex에서 [0-9] 또는 [0123456789]보다 덜 효율적입니까?

\ d는 Regex에서 [0-9] 또는 [0123456789]보다 덜 효율적입니까?

Patricia Arquette
풀어 주다: 2025-01-31 18:36:10
원래의
918명이 탐색했습니다.

d의 정규 표현식 효율성은 [0-9] Is d Really Less Efficient Than [0-9] or [0123456789] in Regex?
만큼 효율적이지 않습니다. 최근의 논의에서 일부 사람들은 정기적 인 표현식에서

또는

대신 를 사용하는 효율성에 의문을 제기했습니다. 예기치 않게, C#정규 표현 엔진의 테스트는 의 효율이 다른 두 옵션보다 낮다는 것을 보여줍니다.

낮은 효율의 가능한 원인

[0123456789] [0-9] 유니 코드 번호 : d에는 공통 0-9뿐만 아니라 모든 유니 코드 번호가 포함되어 있습니다. 따라서, 분석적 비 표준 수는 정규 발현 엔진의 속도를 늦출 수 있습니다. d 불필요한 추가 기능 :

이외의 추가 함수를 포함하여 더 복잡한 처리가 필요할 수 있습니다. 이러한 추가 기능은 효율성에 영향을 미칩니다.

테스트 결과
  1. 이 문제를 증명하기 위해 다음 테스트가 수행되었습니다. 10,000 무작위 문자열, 각 문자열에는 1,000자가 포함되어 있으며 그 중 절반은 숫자를 포함합니다. 각 정규 표현식 (d, , )을 처리하는 데 소비 된 문자열을 처리하는 시간 :
  2. 정규 표현 시간 d 에 대한 시간의 백분율 > 00 : 00 : 00.2141226 100% > 00 : 00 : 00.1357972 63.42% > 00 : 00 : 00.1388997 64.87% 테이블> 결과는 효율성 측면에서 와
  3. 가 보다 상당히 우수하다는 것을 보여줍니다. 결론 d [0-9]는 더 넓은 수의 디지털 매칭 기능을 제공 할 수 있지만 성능 측면에서 희생됩니다. 키 -유형 응용 프로그램의 경우 더 간결한 또는 를 사용하는 것이 좋습니다.

위 내용은 \ d는 Regex에서 [0-9] 또는 [0123456789]보다 덜 효율적입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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