제품 이름에서 모델 번호를 추출하고 싶습니다. 모델은 4 자 이상의 문자 및 숫자 문자열로 간주되어야합니다.정규식을 사용하여 4 자 이상의 문자 및 숫자 문자열을 추출하는 방법은 무엇입니까?
예를 들어, 다음 제품 이름에서 '26PFL3405H'는 모델 번호입니다.
필립스 26PFL3405H 텔레비전 나는 단어가
제품 이름에서 모델 번호를 추출하고 싶습니다. 모델은 4 자 이상의 문자 및 숫자 문자열로 간주되어야합니다.정규식을 사용하여 4 자 이상의 문자 및 숫자 문자열을 추출하는 방법은 무엇입니까?
예를 들어, 다음 제품 이름에서 '26PFL3405H'는 모델 번호입니다.
필립스 26PFL3405H 텔레비전 나는 단어가
당신은 이런 식 사용할 수이어야 하나 개의 숫자와 하나 개의 알파벳 중 하나를 소문자 나 대문자를 포함해야합니다 의미 모델 번호로
:
을\b(?=[A-Z]+\d|\d+[A-Z])[A-Z\d]{4,}\b
대소 문자를 구분하지 않으려면 /i
플래그 또는 (?i)
을 사용하십시오.
이 정규식보십시오 : 그것은 모두 포함해야한다는 조건을 충족하려면 (고정)
<?php
$product_name = "Philips 26PFL3405H Television";
$pattern = '/ (\w|\d[\d\w]+) /i';
preg_match($pattern, $product_name, $matches);
echo $matches[1];
?>
/\s([A-Z0-9]+)\s/
고마워, 내가이 PHP를 사용하려고합니다, 당신의 정규식은 atleast 하나의 문자와 1 개의 알파벳을 포함하는 모델 번호를 시행하지 않습니다. 모델에는 글자와 숫자가 모두 포함되어야합니다. – Ankit
@Ankit 수정했습니다. 이제 PHP로되어 있습니다 (+ 적어도 1 개의 문자와 1 개의 문자로 매칭됩니다) –
을, 정규 표현식은 내가 전적으로 무엇을 생각
[A-Z0-9]*(?:[A-Z][0-9]|[0-9][A-Z])[A-Z0-9]*
, 같이한다 최소 길이를 적용하는 가장 좋은 방법이지만 작동하려면
(?:[A-Z][0-9]|[0-9][A-Z])[A-Z0-9]{3,}|[A-Z0-9](?:[A-Z][0-9]|[0-9][A-Z])[A-Z0-9]{2,}|[A-Z0-9]{2,}(?:[A-Z][0-9]|[0-9][A-Z])[A-Z0-9]|[A-Z0-9]{3,}(?:[A-Z][0-9]|[0-9][A-Z])
나는 정규식을 이렇게 오랫동안 게시했다. 첫 번째 정규 표현식의 결과를 길이로 필터링하는 것이 좋습니다. 처음 4+의 필터 크기를 한 다음 개별적으로 알파벳과 숫자를 찾아 :
나는 2 단계 접근 방식을 취할 것
echo "12345 Philips 26PFL3405H Television" | egrep -o "\b[a-zA-Z0-9]{4,}\b" | egrep "[0-9]" | egrep "[a-zA-Z]"
26PFL3405H
을 지금까지 시도 무엇입니까? 정규식의 어떤 맛? 노력은 어디 있습니까? 모델 번호에 대한 정의에 따라 "필립스"와 "텔레비전"도 모델 번호이지만 필자는 그것이 당신이 원하는 것임을 의심합니다. 명확히하십시오. –