정규식 문자열을 처리 할 때 wsregex :: compile 충돌 (메모리 누수)이 발생합니까?

파울로 발 비노

다음 문자열과 함께 BOOST의 wsregex :: compile을 사용하려고 할 때 내 프로그램이 충돌하는 이유를 이해하고 싶습니다.

(?P<path>\b[a-z]:\\(?:[^\\/:*?"<>|\r\n]+\\)*[^\\/:*?"<>|\r\n]*)?
(:)?
(?P<ip>(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\b)
(;(?P<port>\d*))?
(:(?P<port>\b\d+\b):(?P<password>[\w]*))?
(:(?P<password>\b\d+\b))?

정규식 친구에서는 모든 것이 정상인 것 같습니다. RegexBuddy에서 JGSoft 플레이버 옵션을 사용했습니다.

다음을 확인하고 있습니다.

c:\My Documents\Test\test.csv:1.12.12.13:111:admin
c:\My Documents\Test\test.csv:1.12.12.13:111
c:\My Documents\Test\test.csv:1.12.12.13;111
1.12.12.13:111
1.12.12.13;111

저 좀 도와 주 시겠어요? 감사합니다.

에릭 니 블러

내가 말할 수있는 한 이것은 메모리 누수 나 충돌이 아닙니다. 잘못된 패턴이기 때문에 Xpressive에서 예외가 발생합니다. 다음 프로그램 :

#include <iostream>
#include <boost/xpressive/xpressive_dynamic.hpp>

namespace xpr = boost::xpressive;

int main()
{
    const char pattern[] =
        "(?P<path>\\b[a-z]:\\\\(?:[^\\\\/:*?\"<>|\\r\\n]+\\\\)*[^\\\\/:*?\"<>|\\r\\n]*)?"
        "(:)?"
        "(?P<ip>(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\b)"
        "(;(?P<port>\\d*))?"
        "(:(?P<port>\\b\\d+\\b):(?P<password>[\\w]*))?"
        "(:(?P<password>\\b\\d+\\b))?";
    try
    {
        xpr::sregex rx = xpr::sregex::compile(pattern);
    }
    catch(xpr::regex_error const & e)
    {
        std::cout << e.what() << std::endl;
    }
}

출력 :

named mark already exists

실제로 그렇습니다. 이 패턴은 캡처 그룹의 이름으로 "port"와 "password"를 두 번 사용합니다. Xpressive는 그것을 좋아하지 않습니다. 캡처에 고유 한 이름을 선택하면 괜찮을 것입니다.

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

해체자를 호출 할 때 메모리 누수가 발생합니까?

분류에서Dev

이 파일을 미리 볼 수 없습니다. 앱이 충돌했을 수 있습니다. 특정 코드 줄을 입력 할 때 발생합니다.

분류에서Dev

이 메서드는 예외가 발생할 때 메모리 누수를 유발합니까?

분류에서Dev

Gradle이 종속성 충돌을 처리 할 때 가장 높은 것은 무엇을 의미합니까?

분류에서Dev

stdout을 stderr로 두 번째로 리디렉션 할 때 충돌이 발생합니다.

분류에서Dev

프로세스를 중단 할 때 메모리 누수가 발생합니까?

분류에서Dev

메인 메모리를 사용할 수있을 때 페이지 스와핑이 발생합니까?

분류에서Dev

UINavigationBar에서 탐색 항목을 설정할 때 충돌이 발생합니다.

분류에서Dev

식료품 데이터 세트에서 apriori 규칙을 정리할 때 오류가 발생합니다.

분류에서Dev

백만 요소의 배열을 정렬 할 때 병합 정렬 알고리즘이 충돌하는 이유를 어떻게 찾을 수 있습니까?

분류에서Dev

C 스타일 문자열을 다시 할당하면 메모리 누수가 발생할 수 있습니까?

분류에서Dev

대규모 배열을 처리 할 때 웹 작업자의 메모리 부족

분류에서Dev

정규식 문자의 최대 길이가 처리 할 수 있습니까?

분류에서Dev

새 문자열을 할당하면 충돌이 발생합니까?

분류에서Dev

Laravel에서 페이지 충돌을 어떻게 처리 할 수 있습니까?

분류에서Dev

전 처리기 지시문을 사용하여 달러 기호가 나타내는 것을 정의하면 충돌이 발생합니까?

분류에서Dev

JVMTI EVENT_EXCEPTION을 처리 할 때 JVM이 때때로 충돌하거나 느리게 시작되는 이유는 무엇입니까?

분류에서Dev

커널이 정상적으로 충돌을 처리 할 수없는 이유

분류에서Dev

데스크탑 창 관리자가 메모리 누수 또는 충돌이 발생하는 이유는 무엇입니까?

분류에서Dev

3.9GB TIFF 이미지를 처리 할 때 LibVIPS 충돌

분류에서Dev

HTTPRequest (JSON)를 처리 할 때 iOS 앱이 가끔 충돌 함

분류에서Dev

C-함수 내에서 메모리가 할당 될 때 누가 메모리 할당을 담당합니까?

분류에서Dev

푸시 세그를 사용할 때 iOS 포토 갤러리 메모리 누수 / 충돌

분류에서Dev

정규식을 사용하여 문자열에서 X 자리 이상을 제거 할 수 있습니까?

분류에서Dev

Django-문자열을 쿼리 할 때 정규식을 설정하는 방법

분류에서Dev

메모리 고갈로 응용 프로그램이 충돌 할 때 메시지 상자를 표시하고 싶습니다.

분류에서Dev

응용 프로그램이 충돌 할 때 Windows 메모리 덤프를 생성하는 방법.?

분류에서Dev

로그인 할 때마다 새로운 패스포트 전략을 만들면 메모리 누수가 발생합니까?

분류에서Dev

Apple에서 사용자에게 알리지 않고 앱을 시작할 때 자체 캡처 된 충돌 로그를 보낼 수 있습니까?

Related 관련 기사

  1. 1

    해체자를 호출 할 때 메모리 누수가 발생합니까?

  2. 2

    이 파일을 미리 볼 수 없습니다. 앱이 충돌했을 수 있습니다. 특정 코드 줄을 입력 할 때 발생합니다.

  3. 3

    이 메서드는 예외가 발생할 때 메모리 누수를 유발합니까?

  4. 4

    Gradle이 종속성 충돌을 처리 할 때 가장 높은 것은 무엇을 의미합니까?

  5. 5

    stdout을 stderr로 두 번째로 리디렉션 할 때 충돌이 발생합니다.

  6. 6

    프로세스를 중단 할 때 메모리 누수가 발생합니까?

  7. 7

    메인 메모리를 사용할 수있을 때 페이지 스와핑이 발생합니까?

  8. 8

    UINavigationBar에서 탐색 항목을 설정할 때 충돌이 발생합니다.

  9. 9

    식료품 데이터 세트에서 apriori 규칙을 정리할 때 오류가 발생합니다.

  10. 10

    백만 요소의 배열을 정렬 할 때 병합 정렬 알고리즘이 충돌하는 이유를 어떻게 찾을 수 있습니까?

  11. 11

    C 스타일 문자열을 다시 할당하면 메모리 누수가 발생할 수 있습니까?

  12. 12

    대규모 배열을 처리 할 때 웹 작업자의 메모리 부족

  13. 13

    정규식 문자의 최대 길이가 처리 할 수 있습니까?

  14. 14

    새 문자열을 할당하면 충돌이 발생합니까?

  15. 15

    Laravel에서 페이지 충돌을 어떻게 처리 할 수 있습니까?

  16. 16

    전 처리기 지시문을 사용하여 달러 기호가 나타내는 것을 정의하면 충돌이 발생합니까?

  17. 17

    JVMTI EVENT_EXCEPTION을 처리 할 때 JVM이 때때로 충돌하거나 느리게 시작되는 이유는 무엇입니까?

  18. 18

    커널이 정상적으로 충돌을 처리 할 수없는 이유

  19. 19

    데스크탑 창 관리자가 메모리 누수 또는 충돌이 발생하는 이유는 무엇입니까?

  20. 20

    3.9GB TIFF 이미지를 처리 할 때 LibVIPS 충돌

  21. 21

    HTTPRequest (JSON)를 처리 할 때 iOS 앱이 가끔 충돌 함

  22. 22

    C-함수 내에서 메모리가 할당 될 때 누가 메모리 할당을 담당합니까?

  23. 23

    푸시 세그를 사용할 때 iOS 포토 갤러리 메모리 누수 / 충돌

  24. 24

    정규식을 사용하여 문자열에서 X 자리 이상을 제거 할 수 있습니까?

  25. 25

    Django-문자열을 쿼리 할 때 정규식을 설정하는 방법

  26. 26

    메모리 고갈로 응용 프로그램이 충돌 할 때 메시지 상자를 표시하고 싶습니다.

  27. 27

    응용 프로그램이 충돌 할 때 Windows 메모리 덤프를 생성하는 방법.?

  28. 28

    로그인 할 때마다 새로운 패스포트 전략을 만들면 메모리 누수가 발생합니까?

  29. 29

    Apple에서 사용자에게 알리지 않고 앱을 시작할 때 자체 캡처 된 충돌 로그를 보낼 수 있습니까?

뜨겁다태그

보관