2017-11-14 7 views
1

읽기이 vim plugin 나는이 줄을 참조하십시오. this에 따르면 "POSIX 대괄호 식은 문자 집합 중 하나의 문자와 일치합니다".대괄호 사이의 파이프는 정규식에서 무엇을 의미합니까? 이 <code>[]</code>에 의해 둘러싸여 때 정규식 훨씬 이해가되지 않습니다, 나에게</p> <pre><code>syntax match tweeDelimiter "[<<|>>|]]|[[]" </code></pre> <p>:

이렇게 일치하지 않습니다 < 또는> 또는 [또는]? 문맥 상으로 < < 또는 >> 또는 [[or]]와 일치 시키려고합니다.

+4

맞아요, 정규식은별로 의미가 없습니다. 당신은 같은 결과를내는'[] [<> |]'또는'[\] [<> |]'(JavaScript와 같은 빈 집합을 허용하는 언어로)를 사용할 수 있습니다. 이것은 기본적으로 문자 '<|> []'과 일치합니다. 나는이 모양의 정규식이라고 생각한다 :'(> | \] \] | \ [\]) "<<', '>", "]]'또는 [[ – ctwheels

+1

Imo 이것은 [{> | \ [\]]' – Jan

+0

이 플러그인이 특히 정규 표현식을 어떻게 사용하는지 잘 모르겠지만 PCRE에서 두 개/괄호는이 문맥에서 의미가있는 구분 기호를 나타낼 수도 있습니다. – revo

답변

1

실제로 플러그인의 버그처럼 보입니다.

에 맞게 추가로 물건이 있다면
<<\|>>\|\]\]\|\[\[ 

, 위에서 것이다 : 그것은 쌍 이러한 문자의 일치하고자하는 경우에는 일반 정규 표현식 가지 (\|)가 아닌 수집를 사용하는 그룹화하려면 \%(...\)에 동봉하십시오. 그러나 [...]을 사용하면 포함 된 문자의 인 과 일치합니다. Vim은 중복 된 것을 무시합니다. 다른 사람들이 이미 주석을 달았 기 때문에, 그러한 것은 더 짧은 형태로 쓰여질 수 있습니다, 예를 들어 [][<>|]. 플러그인이 참으로 잘못 <><[ 대신 단지 <<[[ 같은 물건을 일치하는 경우


그래서 버그에 대해 저자에게 알려주십시오.