특정 문자가 처음 나타날 때까지 모든 것과 일치하는 패턴을 찾고 있습니다 . “;” – 세미콜론 .
나는 이것을 썼다 :
/^(.*);/
그러나 실제로 세미콜론이 마지막으로 나타날 때까지 모든 세미콜론을 포함합니다.
답변
당신은 필요
/[^;]*/
는 [^;]
A는 문자 클래스 , 그것은 모든하지만 세미콜론 일치합니다.
perlre
맨 페이지 를 인용하려면 :
문자 목록을 []로 묶어 문자 클래스를 지정할 수 있으며,이 문자는 목록의 모든 문자와 일치합니다. “[“뒤의 첫 문자가 “^”이면 클래스는 목록에없는 문자와 일치합니다.
이것은 대부분의 정규식 방언에서 작동합니다.
답변
할 것이다;
/^(.*?);/
작업?
는 ?
게으른 연산자 일치 전에 가능한 한 적게되도록 정규식 잡고있다 ;
.
답변
/^[^;]*/
[^;]는 세미콜론을 제외한 모든 항목과 일치합니다. 대괄호는 집합 일치 연산자이며, 본질적 으로이 문자 집합의 모든 문자와 일치 ^
하므로 처음에는 역 일치 하므로이 세트에 없는 것은 일치 시킵니다.
답변
시험 /[^;]*/
regex character classes
자세한 내용은 Google 을 참조하십시오.
답변
답변
샘플 텍스트:
"this is a test sentence; to prove this regex; that is g;iven below"
예를 들어 위의 샘플 텍스트가 있으면 정규 표현식 /(.*?\;)/
은 세미콜론을 ;
포함하여 세미콜론 ( ) 이 처음 나타날 때까지 모든 것을 제공합니다 ."this is a test sentence;"
답변
이것은 정규식 솔루션이 아니라 문제 설명에 충분히 간단한 것입니다. 문자열을 나누고 배열에서 첫 번째 항목을 가져옵니다.
$str = "match everything until first ; blah ; blah end ";
$s = explode(";",$str,2);
print $s[0];
산출
$ php test.php
match everything until first