$ 1 <$ 2 인 경우에만 Perl 정규식이 일치하도록하려면 어떻게해야합니까?

자이드

내가 제대로 작동하지 못하는 부분은 항상 실패하기 때문에 조건부입니다.

use Test::More tests => 2;

my $regex = qr/(\d+),(\d+)
               (?(?{\g1<\g2})(*FAIL))
              /x ;

  like( "(23,36)", $regex, 'should match'     );
unlike( "(36,23)", $regex, 'should not match' );

산출

not ok 1 - should match
#   Failed test 'should match'
#   at - line 7.
#                   '(23,36)'
#     doesn't match '(?^x:(\d+),(\d+)
#                    (?(?{\g1<\g2})(*FAIL))
#                   )'
ok 2 - should not match
# Looks like you failed 1 test of 2.
밀러

코드에 다음 수정 사항이 필요합니다.

  • 실험 코드 블록 에서 $1$2변수를 사용합니다 (?{ }).
  • 실패하려는 것과 일치하도록 테스트를 반전해야합니다.
  • 코드 블록이 실패를 나타내는 경우 역 추적을 방지해야합니다. 두 번째 테스트에서 6이 23보다 작기 때문에 통과 할 하위 문자열과 일치하지 않도록해야합니다. 이를 방지하는 두 가지 방법이 있습니다.
    • 정규식이 부분 숫자와 일치하지 않도록 단어 경계를 추가하십시오.
    • (*SKIP)역 추적을 명시 적으로 방지 하려면 제어 동사를 사용하십시오 .

코드:

use strict;
use warnings;

use Test::More tests => 2;

my $regex = qr/(\d+),(\d+)
               (?(?{$1 > $2})(*SKIP)(*FAIL))
              /x ;

  like( "(23,36)", $regex, 'should match'     );
unlike( "(36,23)", $regex, 'should not match' );

출력 :

1..2
ok 1 - should match
ok 2 - should not match

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

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

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

1 개의 양식 제출에 2 개의 도메인에 게시하려면 어떻게해야합니까?

분류에서Dev

Perl이 알려지지 않은 패턴을 인식하도록하려면 어떻게해야합니까?

분류에서Dev

인터페이스에 2 개의 IP가 할당되어있는 경우 특정 IP 만 해제하려면 어떻게해야합니까?

분류에서Dev

웹 사이트가 Perl에서 셀레늄을 사용하여 2XX 응답을 보내는 지 확인하려면 어떻게해야합니까?

분류에서Dev

Perl이 문자열의 처음 10 줄을 인쇄하도록하려면 어떻게해야합니까?

분류에서Dev

다른 셀이 특정 값인 경우에만 셀 수를 계산하려면 어떻게해야합니까?

분류에서Dev

정규식이 마지막으로 발생한 줄만 인쇄하려면 어떻게해야합니까?

분류에서Dev

R에서 NA가 아닌 값이> = 2 인 행만 포함하도록 데이터 프레임을 필터링하려면 어떻게해야합니까?

분류에서Dev

+ 오버로드가 다른 파일 C ++에서 인식되도록하려면 어떻게해야합니까?

분류에서Dev

내 게임에서이 공용 기능을 인식하도록하려면 어떻게해야합니까?

분류에서Dev

벡터 길이가 일치하도록 map2 함수 (purrr) 내에서 열을 하위 집합하려면 어떻게해야합니까?

분류에서Dev

Windows Server 2008 R2에서 RDP 용 TLS를 통해 특정 중간 인증서를 사용하도록하려면 어떻게해야합니까?

분류에서Dev

deault 브라우저를 인식하지 않도록 설정하려면 어떻게해야합니까?

분류에서Dev

KDE가 인식하도록 환경 변수를 설정하려면 어떻게해야합니까?

분류에서Dev

2D 게임이 다른 해상도에 반응하도록하려면 어떻게해야합니까?

분류에서Dev

이 쿼리가 ID가 1 인 모든 행을 반환하도록하려면 어떻게해야합니까?

분류에서Dev

AngularJS에서 텍스트 영역이 새 줄을 인식하도록하려면 어떻게해야합니까?

분류에서Dev

BitBucket이 커밋 주석에서 줄 바꿈을 인식하도록하려면 어떻게해야합니까?

분류에서Dev

이 프로그램이 2 차원 배열에 난수를 인쇄하도록하려면 어떻게해야합니까?

분류에서Dev

Pandas에서 데이터 비정규 화 : col_1, col_2 등을 만들고 기존 값을 열에 추가하려면 어떻게해야합니까?

분류에서Dev

Google Script, 정규식을 사용하여 한 셀 대신 Sheet1에서 Sheet2로 행을 복사하려면 어떻게해야합니까?

분류에서Dev

Linux에서 암호없이 로그인하도록 SSH를 설정하려면 어떻게해야합니까?

분류에서Dev

인용 부분 "[1]", "[2]", "[3]"없이 위키 백과에서 텍스트를 복사하려면 어떻게해야합니까?

분류에서Dev

정규식을 사용하여 / 1 또는 / 2를 제거하려면 어떻게해야합니까?

분류에서Dev

G1에서 더 많은 로그 세부 정보를 인쇄하려면 어떻게해야합니까?

분류에서Dev

conda list 명령이 이름 열만 인쇄하도록하려면 어떻게해야합니까?

분류에서Dev

Windows 10에서 배터리를 다시 인식하도록하려면 어떻게해야합니까?

분류에서Dev

Pidgin이 항상 만료 된 인증서를 수락하도록하려면 어떻게해야합니까?

분류에서Dev

브라우저가 IE 7 이하인 경우에만 웹 페이지에 JavaScript 파일을 포함하려면 어떻게해야합니까?

Related 관련 기사

  1. 1

    1 개의 양식 제출에 2 개의 도메인에 게시하려면 어떻게해야합니까?

  2. 2

    Perl이 알려지지 않은 패턴을 인식하도록하려면 어떻게해야합니까?

  3. 3

    인터페이스에 2 개의 IP가 할당되어있는 경우 특정 IP 만 해제하려면 어떻게해야합니까?

  4. 4

    웹 사이트가 Perl에서 셀레늄을 사용하여 2XX 응답을 보내는 지 확인하려면 어떻게해야합니까?

  5. 5

    Perl이 문자열의 처음 10 줄을 인쇄하도록하려면 어떻게해야합니까?

  6. 6

    다른 셀이 특정 값인 경우에만 셀 수를 계산하려면 어떻게해야합니까?

  7. 7

    정규식이 마지막으로 발생한 줄만 인쇄하려면 어떻게해야합니까?

  8. 8

    R에서 NA가 아닌 값이> = 2 인 행만 포함하도록 데이터 프레임을 필터링하려면 어떻게해야합니까?

  9. 9

    + 오버로드가 다른 파일 C ++에서 인식되도록하려면 어떻게해야합니까?

  10. 10

    내 게임에서이 공용 기능을 인식하도록하려면 어떻게해야합니까?

  11. 11

    벡터 길이가 일치하도록 map2 함수 (purrr) 내에서 열을 하위 집합하려면 어떻게해야합니까?

  12. 12

    Windows Server 2008 R2에서 RDP 용 TLS를 통해 특정 중간 인증서를 사용하도록하려면 어떻게해야합니까?

  13. 13

    deault 브라우저를 인식하지 않도록 설정하려면 어떻게해야합니까?

  14. 14

    KDE가 인식하도록 환경 변수를 설정하려면 어떻게해야합니까?

  15. 15

    2D 게임이 다른 해상도에 반응하도록하려면 어떻게해야합니까?

  16. 16

    이 쿼리가 ID가 1 인 모든 행을 반환하도록하려면 어떻게해야합니까?

  17. 17

    AngularJS에서 텍스트 영역이 새 줄을 인식하도록하려면 어떻게해야합니까?

  18. 18

    BitBucket이 커밋 주석에서 줄 바꿈을 인식하도록하려면 어떻게해야합니까?

  19. 19

    이 프로그램이 2 차원 배열에 난수를 인쇄하도록하려면 어떻게해야합니까?

  20. 20

    Pandas에서 데이터 비정규 화 : col_1, col_2 등을 만들고 기존 값을 열에 추가하려면 어떻게해야합니까?

  21. 21

    Google Script, 정규식을 사용하여 한 셀 대신 Sheet1에서 Sheet2로 행을 복사하려면 어떻게해야합니까?

  22. 22

    Linux에서 암호없이 로그인하도록 SSH를 설정하려면 어떻게해야합니까?

  23. 23

    인용 부분 "[1]", "[2]", "[3]"없이 위키 백과에서 텍스트를 복사하려면 어떻게해야합니까?

  24. 24

    정규식을 사용하여 / 1 또는 / 2를 제거하려면 어떻게해야합니까?

  25. 25

    G1에서 더 많은 로그 세부 정보를 인쇄하려면 어떻게해야합니까?

  26. 26

    conda list 명령이 이름 열만 인쇄하도록하려면 어떻게해야합니까?

  27. 27

    Windows 10에서 배터리를 다시 인식하도록하려면 어떻게해야합니까?

  28. 28

    Pidgin이 항상 만료 된 인증서를 수락하도록하려면 어떻게해야합니까?

  29. 29

    브라우저가 IE 7 이하인 경우에만 웹 페이지에 JavaScript 파일을 포함하려면 어떻게해야합니까?

뜨겁다태그

보관