난 갖길 원해:
나는 시도했다 :
print_r(preg_match('/^A((?!\+A).)\+B(.*)$/', $string));
그래서 당신이 추구하는 기본 패턴이 "A (숫자) + B (숫자)"인 것처럼 보입니다.
귀하의 표현은 그 목적으로 약간 복잡해 보입니다. 간단히 사용합니다.
preg_match('/^A\d+(\+B\d+)+$/', $input, $match);
입력이 영숫자 (A (alnum) + B (alnum)) 일 수있는 경우
preg_match('/^A[:alnum:]+(\+B[:alnum:]+)+$/', $input, $match);
대신.
기본적으로 두 가지 절대 하드 요구 사항은 다음과 같습니다. 입력 문자열은 대문자 A로 시작해야하며 하나의 + 기호 다음에 대문자 B가 와야합니다. 그 사이의 문자가 무엇이든간에 추가하면됩니다. 요구 사항에 가장 잘 맞는 캐릭터 그룹. 당신이 준 예에서 \d+
(하나 이상의 숫자) 청구서에 맞는 것 같습니다. 경우 "A00FF33 + B123ABC는" 유효해야, 나도 사용하십시오 [:alnum:]
또는 [0-9A-F]
(16 진수 값에 대한) 대신합니다.
하나 이상의 요구 사항에 대한 트릭 은 경기 의 + Belement 부분에 대한 그룹을 만들고 해당 그룹을 한 번 이상 반복하는 것입니다.
\+B\d+ //matches once
(\+B\d+)+ //matches once or more
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다