이것은 에 대한 것으로 가정합니다. 분류 규칙 빌더 (CRB). @ Wiktor의 주석 처리 된 답변은 괜찮습니다.하지만 그가 제공 한 정규 표현식에 \n
을 포함 할 필요는 없습니다. 그의 정규식이 가정하는 한 가지는 모든 기존 키가 모두 9 개의 값 또는 적어도 자리 표시 자 콜론을 갖습니다. 연습에서의 나의 경험에서 항상 그렇지는 않다. 요구 사항이 변경되었으므로 과거 데이터가 줄어들 수 있습니다.
^([^:]*)(?::([^:]*))?(?::([^:]*))?(?::([^:]*))?(?::([^:]*))?(?::([^:]*))?(?::([^:]*))?(?::([^:]*))?(?::([^:]*))?$
이이 값을 $9
을 통해 당신에게 $1
을 줄 것이다 :
value1:value2:value3:value4:value5:value6:value7:value8:value9
이 당신을 위해 인 경우에, 여기에 약간 수정 @Wiktor 제공 정규식입니다
$1 = value1
$2 = value2
$3 = value3
$4 = value4
$5 = value5
$6 = value6
$7 = value7
$8 = value8
$9 = value9
또는 ::
자리 표시자를 비워 둘 수 있습니다 (예 :
$1 = value1
$2 = value2
$3 =
$4 = value4
$5 = value5
$6 =
$7 = value7
$8 = value8
$9 = value9
value1:value2::value4:value5::value7:value8:value9
그리고 당신은, 예를 들어, 전체 9 값 문자열이없는 경우에는 현재 값과 일치합니다
value1:value2::value4
$1 = value1
$2 = value2
$3 =
$4 = value4
시도 [ '^ ([^ \ n] *) ([^ \ n] *) ([^ \ n] *) ([^ ([^ : \ n] *) :([^ : \ n] *) :([^ : \ n] *) : \ n] *) $'] (https://regex101.com/r/CRnys1/1). 멀티 라인 컨텐트로 실행하지 않는다면'\ n'을 제거 할 수 있습니다. –
9 개 미만의 값이 허용됩니까? 즉, 'value1 : value2'는 유효한 문자열입니까? –