정규식 : 첫 문자 발생까지 일치
특정 문자가 처음 나타날 때까지 모든 것과 일치하는 패턴을 찾고 있습니다 . ";" - 세미콜론 .
나는 이것을 썼다 :
/^(.*);/
그러나 실제로 세미콜론이 마지막으로 나타날 때까지 모든 것 (세미콜론 포함)과 일치합니다.
당신은 필요
/[^;]*/
는 [^;]
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
'development' 카테고리의 다른 글
Xcode에서 NSZombie를 활성화하는 방법은 무엇입니까? (0) | 2020.03.15 |
---|---|
Windows 10에서 Linux Bash 경고음을 비활성화합니다. (0) | 2020.03.15 |
ViewPager를 동적으로 업데이트 하시겠습니까? (0) | 2020.03.15 |
힘내-현재 분기 바로 가기를 밀어 (0) | 2020.03.15 |
CSS에서만 위첨자? (0) | 2020.03.15 |