제발 누군가 도와 주시면 영원히 감사하겠습니다. 문자열에서 작업 ID를 찾을 수있는 정규 표현식
나는 "당신의 임무는 797 ("작업 이름은 ") 또는"귀하의 작업이 9212 ("another_job_name"가) 제출되었습니다 "등 제출되었습니다"에서 797를 추출하는 정규 표현식을 만들려고 해요아이디어가 있으십니까? 고마워요!
제발 누군가 도와 주시면 영원히 감사하겠습니다. 문자열에서 작업 ID를 찾을 수있는 정규 표현식
나는 "당신의 임무는 797 ("작업 이름은 ") 또는"귀하의 작업이 9212 ("another_job_name"가) 제출되었습니다 "등 제출되었습니다"에서 797를 추출하는 정규 표현식을 만들려고 해요아이디어가 있으십니까? 고마워요!
를 얻기 위해 수정 된 수를 잡아에 대한 특별한 조건이 있습니까?
첫 번째 숫자를 가져 오려면 /\d+/
을 preg_match
으로 사용하십시오.
if (preg_match('/\d+/', $subject, $match)) {
$job_id = (int) $match[0];
}
그렇지 않으면 "작업"(대소 문자를 구분하지 않음)이 앞에있는 번호를 검색하는 다음과 같이 할 수 있습니다.
if (preg_match('/job (\d+)/i', $subject, $match)) {
$job_id = (int) $match[1];
}
(이 정규식에 더 alternatves가 있지만 가장 처음에는 간단하게하기 위해.)
는 또 다른 옵션의 기본적인 분석에 정규 표현식에서 멀리 이동하는 것 문자열 : 물론
sscanf($subject, 'Your Job %d ("%[^"]")', $job_id, $job_title);
// use $job_id and $job_title however you like
는 유사한 preg_match
와 함께 할 수 있지만 대안을 제공하는 것이 좋다.
나머지 문자열이 동일하게 보장되면 간단한 \d+
이면 충분합니다.
그렇지 않은 경우 Your job (\d+)
을 사용하고 첫 번째 캡처 된 그룹을 읽습니다.
preg_match("/Your job (\d+)/", $str, $matches);
echo $matches[1]; //prints the id.
편집 : 작업 이름
preg_match("/Your job (\d+) \("(.+?)"\)/", $str, $matches);
echo $matches[1]; //prints the id.
echo $matches[2]; //prints the job name.
우수 답변, 감사합니다. :-) 관심이 있으신가요? 어떻게 작업 이름을 추출하나요? 감사합니다 .-) – Flukey
@Jamie, 내 업데이트 (수평 규칙 아래) 및 Amarghosh 's를 참조하십시오. 추신 너는 내 질문에 결코 대답하지 않았다. – salathe
regex /\(\"()*.)\"\)/을 사용하면 작업 이름 – Xetius