regexp에 대한 문자열 일치에 해당하는 것이 있습니까?
On 2월 17, 2021 by admin지역을 정규 표현식과 비교하는 것을 제외하고 이와 같은 내용을 작성하고 싶습니다.
(if (string-match (buffer-substring-no-properties (point) (mark)) "foo") (bar))
이렇게 사용할 수있는 정규 표현식에 대한 문자열 일치가 있습니까
(if (regexp-match (buffer-substring-no-properties (point) (mark)) "^[A-Z]") (bar))
선택한 지역이 다음과 같은 경우 true를 반환하도록 “Apple”이고 “apple”이면 nil입니까?
댓글
답변
답변 :
string-match
는 정규 표현식과 함께 사용하기위한 것입니다.
(문자열 일치 REGEXP STRING & 선택적 START)
STRING에서 REGEXP에 대한 첫 번째 일치 시작 색인을 반환하거나 nil을 반환합니다. case-fold-search가 nil이 아닌 경우 매칭은 대소 문자를 무시합니다. 세 번째 인수 START가 nil이 아닌 경우 STRING의 해당 인덱스에서 검색을 시작합니다. 일치를 초과하는 첫 번째 문자의 색인에 대해서는 수행하십시오 (일치 종료 0). match-end및 match-beginning은 패턴의 괄호 구성과 일치하는 하위 문자열의 색인도 제공합니다.
match-string함수를 사용하여 괄호 구성과 일치하는 하위 문자열을 추출 할 수 있습니다. REGEXP에서.
다음은 몇 가지 예입니다.
(string-match "\\(dog\\|cat\\)" "There is a dog.") ;; => 11 (string-match "\\(dog\\|cat\\)" "There are two cats here." 0) ;; => 14 (string-match "\\(dog\\|cat\\)" "There are two cats here." 15) ;; => nil (string-match "\\(dog\\|cat\\)" "There are horses.") ;; => nil
string-match
를 사용한 후 match-data
를 사용할 계획이없는 경우 match-data
를 수정하지 않는다는 점을 제외하고는 string-match
처럼 작동하는 string-match-p
를 사용하는 것을 선호합니다.
다른 사람들이 말했듯이, 귀하의 경우에는 looking-at
가 아마도 더 나은 선택 일 것입니다.
(REGEXP 기준)
포인트 뒤의 텍스트가 정규식 REGEXP와 일치하면 t를 반환합니다. 이 함수는 일치 시작, 일치 종료및 일치 데이터에 액세스하는 일치 데이터를 수정합니다. 일치 데이터를 보존하려면 저장하고 복원하세요.
댓글
- OP에서 인수 순서가 잘못되었습니다.
string-match
를 호출하는 예제 스 니펫을 표시하는 것이 좋습니다.
string-match
는 이미 regexps를 사용하고 있습니다. (ii) 대소 문자 구분을 원하는 경우 통화를 nil로 묶기 위해case-fold-search
를 사용합니다. (iii)looking-at
지점 (iv)에서 일치하는 텍스트를 위해point
<대신region-beginning
및region-end
를 사용할 수 있습니다. / div> 및mark
후자가 전자보다 앞선 경우 (use-region-p
가 0이 아닌지 확인하기위한 보너스 포인트)C-h f
가 알려줄 것입니다.