development

정규식 : 첫 문자 발생까지 일치

big-blog 2020. 3. 15. 09:39
반응형

정규식 : 첫 문자 발생까지 일치


특정 문자가 처음 나타날 때까지 모든 것과 일치하는 패턴을 찾고 있습니다 . ";" - 세미콜론 .

나는 이것을 썼다 :

/^(.*);/

그러나 실제로 세미콜론이 마지막으로 나타날 때까지 모든 것 (세미콜론 포함)과 일치합니다.


당신은 필요

/[^;]*/

[^;]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

이것은 속성을 포함하여 xml 태그의 모든 문자를 일치시키는 방법을 알아 내려고 노력하면서 매우 도움이되었습니다. 나는 "모든 것을 끝까지 일치시킨다"라는 문제에 부딪쳤다.

/<simpleChoice.*>/

그러나 다음과 같은 문제를 해결할 수있었습니다.

/<simpleChoice[^>]*>/

이 게시물을 읽은 후. 모두 감사합니다.


"/^([^\/]*)\/$/" 나를 위해 일한 것처럼 다음과 같은 배열에서 최상위 "폴더"만 가져옵니다.

a/   <- this
a/b/
c/   <- this
c/d/
/d/e/
f/   <- this

이것은 각 문자열에서만 첫 번째 항목까지 일치하며 후속 항목은 무시합니다.

/^([^;]*);*/

아무도 당신에게 정답을주지 않았다는 것이 정말로 슬 sad습니다 ....

정규식에서? 탐욕스럽지 않습니다. 기본적으로 정규 표현식은 가능한 한 많이 일치합니다 (욕심쟁이)

단순히? 그리고 그것은 욕심이없고 가능한 적은 일치 할 것입니다!

행운을 빌어 요, 희망이 있습니다.

참고 URL : https://stackoverflow.com/questions/2013124/regex-matching-up-to-the-first-occurrence-of-a-character

반응형