사용하십시오 regular expression :
(\d+(?:\.\d+)*)
내역 :
\d+
다시 하나 이상의 숫자 뒤에 하나 개 이상의 숫자
\.
리터럴 진수 .
문자
\d+
에 대한보기
(...)*
이 경기를 0 또는이 패턴이이 그룹에 대한 역 참조 생성하지 않는 엔진을 알려줍니다
(?:...)
의 이상 발생을 의미합니다 (기본적으로, 우리는 참조를 사용하지 않는를, 그래서 가지고 무의미 하나)
당신은 데이터에 대한 많은 정보를 제공하지 않은, 그래서 나는 다음과 같은 가정했습니다 :
- 데이터는 항상 최소한 하나의 숫자
- 이 데이터는 점없이 단지 수를 포함 할 수 있습니다 포함됩니다
- 데이터는 이러한 가정 중 하나가 잘못된 경우, 당신은 정규 표현식을 수정해야합니다 자체가
점/숫자 쌍의 수를 포함 할 수 있습니다 멀티 자리 숫자를
숫자를 포함 할 수 있습니다. 사용 예 :
가 $x = "OP/1.1.2/DIR";
if (!preg_match('/(\d+(\.\d+)*)/', $x, $matches)) {
// Could not find a matching number in the data - handle this appropriately
} else {
var_dump($matches[1]); // string(5) "1.1.2"
}
'/은 (\ D + (?. \ \ D +) *) /'메모리를 적게 소모한다. – Florent
@Florent : 그것을 찾아 주셔서 감사합니다. 고장에 대해 좀 더 설명해 드리겠습니다. – FtDRbwLXw6
데이터를 얻으려면 항상 $ matches [1]입니까? 또는 $ matches [0]에서 얻을 수 있습니까? – pheromix