2017-12-31 71 views
-2

은 다음과 같습니다regexp를 사용하여 미리 정의 된 입력의 첫 번째 발생을 캡처하는 방법은 무엇입니까? 내가 regexp.my의 정규 표현식을 배우고

/^([0-5][0-9]|60):/g 

내 샘플 데이터는 다음과 같습니다 60:40:60 Lua

모든 것이 괜찮습니다. 이제 나는 전에 첫 번째 사건을 추출하고 싶다 :. 예 : 60 달러이지만 1 달러를 사용하려고합니다. 그것은 6040을 반환합니다. 어떤 생각?

+1

$ 1을 (를) 사용하여 코드를 공유 할 수 있습니까? [당신에게 정규식 테스트] (https://regex101.com/r/TzYlgu/1), 첫 번째 그룹은 60을 포함합니다. –

+0

코드를 테스트하려고합니다 : https://regexr.com/ –

+0

테스트 중입니까? 이런] (https://regexr.com/3iku4)? –

답변

1

무엇 하나 그것에 대해 :

Demo

또는 유효성 검사 당신의 방법에

^(?:[0-5][0-9]|60)(?=:) 
, 당신은 그것을 시도 할 수 있습니다 :

^(?:[0-5][0-9]|60)(?=:\d{2}:\d{2}.*) 

설명 :

  1. ,232을 10 - 귀하와 동일합니다.
  2. (?=:\d{2}:\d{2}.*) - 이전 패턴에 2 자리 콜론 2 digt가오고 그 뒤에 0 이상의 길이의 문자열이 오도록하십시오.

    const regex = /^([0-5][0-9]|60):([0-5][0-9]|60):([0-5][0-9]|60).*$/gm; 
     
    const str = `60:40:60 Lua`; 
     
    let m; 
     
    
     
    if ((m = regex.exec(str)) !== null) { 
     
    console.log(m[1]); 
     
    console.log(m[2]); 
     
    console.log(m[3]); 
     
    }
    : 그것처럼 보인다으로

Demo 2

제공하는 당신의 필요에 따라되지 않는 자리 그룹 1 시작은 당신이 원하는 3 개 그룹을 캡처하는 해결책이

+0

왜 downvote입니다 궁금해!? –

+0

내 downvote 아니지만, 이건 정말 OP의 시도가 잘못되었을 수도 주소하지 않습니다. – tripleee

+0

코드는 어떤 언어입니까? 루아? – tripleee