마지막 하이픈 이후의 모든 것을 반환하기 위해 정규식 (항상 힘들어하는 것)을 만들려고합니다.
예를 들어 다음은 입력 문자열입니다. https://mywebsite.com/company/company-name-page-ddd.l https://mywebsite.com/company/another-company-page-lloy.l
ddd.l 만 반환하거나 두 번째 예제에서는 lloy.l을 반환하고 싶습니다.
나는 그것이 ^-([a-zA-Z0-9-. = ^ $] +) /? $ 줄을 따라 무언가가 될 것이라고 생각했지만 이것은 URL과 디렉토리의 첫 부분을 해결하지 못합니다.
이것은 순수한 정규식이어야하므로 사용자 측의 워드 프레스 플러그인에서 필터로 사용되는 PHP는 없습니다.
누구든지 도울 수 있습니까?
앵커를 돌아서 $
시작하는 대신^
그런 다음 -
문자 클래스에서 를 제거해야합니다 . 값은 그룹 1에 있습니다.
-([a-zA-Z0-9.=^$]+)$
지원되는 경우 하이픈을 일치시키고 \K
긍정적 인 lookbehind를 사용하거나 사용하여 왼쪽에 하이픈을 단언 (?<=-)
하고 그룹을 생략 하여 일치 만 가져올 수도 있습니다 .
-\K[a-zA-Z0-9.=^$]+$
또는 (?<=-)[a-zA-Z0-9.=^$]+$
이전에 PHP가 태그되었습니다.
$strings = [
"https://mywebsite.com/company/company-name-page-ddd.l",
"https://mywebsite.com/company/another-company-page-lloy.l"
];
foreach ($strings as $s) {
preg_match("~-\K[a-zA-Z0-9.=^$]+$~", $s, $match);
echo $match[0] . PHP_EOL;
}
산출
ddd.l
lloy.l
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다