2012-12-30 1 views
0

나는 에 대한 기호를 정의하기 위해 Sublime Text 2에서 일하고 있습니다. 이 정규식 변환을 해석하는 데 도움이 필요합니다.정규식 변환 해석

<key>symbolTransformation</key> 
<string>s/\/\*\*\s*(.*?)\s*\*\//** $1 **/; s/\/\*.*?\*\*\//./; s/\/\*[^\*].*?[^\*]\*\///</string> 

제 의도는 변형을 편집하는 것이지만 먼저 이해해야합니다.

이 특정 구문을 배우기위한 참조가 있습니까? 나는 정규 표현식에 비교적 익숙하고 모든 \과/나를 미쳤다! :)

누군가가 그 조각을 통해 나를 걸을 수 있습니까? 우리는 정규 표현식을 "풀다"경우

답변

1

, 그들은 각각 다음과 같습니다

  • ** $1 **/\*\*\s*(.*?)\s*\*/ 교체;
  • /\*.*?\*\*/.으로 대체하십시오.
  • /\*[^*].*?[^*]\*/을 아무 것도 사용하지 않습니다 (빈 문자열).

우선 정규식 : 캡처의 정량으로

/\*\* # Look for '/' followed by two occurrences of '*', 
\s*  # followed by zero or more space characters, 
(.*?) # followed by zero or more of any character, lazily (with capture), 
\s*  # followed by zero or more space characters, 
\*/  # followed by a '*' and a '/' 

이 (*?) 게으른, 그것은 정규식 엔진이 시도하고 정규식의 다음 구성 요소 전에 텍스트의 가능한 최소 금액과 일치 의미 (\s*)이 충족되면 (보통 경우 "*"과 같은 "욕심 많은"한정 기호와 달리 필요한 경우 다음 구성 요소를 만족시키기 위해 텍스트를 다시 제공하기 전에 가능한 최대 금액을 시도하고 일치시킵니다). 캡쳐는 대체 텍스트에 $1으로 제공됩니다.

두 번째 정규 표현식 :

/\*  # Look for a '/' then a '*', 
.*?  # followed by zero or more of any character, lazily, 
\*\*/ # followed by two '*' and a '/' 

그리고 하나의 점 (.)로이 모든 것을 대체합니다.

세 번째 정규 표현식 :

/\*  # Look for a '/' then a '*', 
[^*]  # followed by one character which is not a '*', 
.*?  # followed by zero or more of any character, lazily, 
[^*]  # followed by one character which is not a '*', 
\*/  # followed by a '*' then a '/'. 

그리고 빈 문자열이 모두를 교체합니다.

+0

멋진 설명! 고맙습니다. –