문제

다음에서 변수를 일치시키고 추출하고 싶습니다. {{variable:int}}

  • 변하기 쉬운 a-z라면 뭐든지 될 거야
  • : 구분 기호입니다
  • 정수 0-9의 정수입니다.

현재 나는: preg_replace('!\{\{(\S+)\}\}!', "$1", $string)이는 작업의 절반만 수행하지만 여전히 분할해야 합니다. :.

감사합니다!

도움이 되었습니까?

해결책

이름/값을 추출하려면 preg_match를 사용하는 것이 좋을 것 같습니다.

preg_match('!\{\{(.*?):(\d)\}\}!', $string, $matches);  
$varname = $matches[1];  
$val = $matches[2];  

다른 팁

당신은 탐욕스럽지 않은 성냥 (.*?): preg_replace('!\{\{(.*?):(\d)\}\}!')

사용

{{([a-zA-Z]+):(\d+)}}

$1에는 캡처된 변수가 포함되고, $2에는 캡처된 정수가 포함됩니다.

설명

{{([a-zA-Z])+:(\d+)}}

[a-zA-Z]+는 하나 이상의 알파벳(소문자 또는 대문자)을 의미합니다.
그 뒤에 ":"가 붙는다.
그 뒤에 최소한 하나 이상의 숫자(0-9)가 옵니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top