Regex 正则表达式转换解释
我正在Regex 正则表达式转换解释,regex,text,expression,sublimetext2,transformation,Regex,Text,Expression,Sublimetext2,Transformation,我正在Sublime Text 2中为goto:@命令定义符号。我需要解释此正则表达式转换的帮助: <key>symbolTransformation</key> <string>s/\/\*\*\s*(.*?)\s*\*\//** $1 **/; s/\/\*.*?\*\*\//./; s/\/\*[^\*].*?[^\*]\*\///</string> symbolTransformation s/\/\*\*\s*(.*?\s*\*\/**
Sublime Text 2
中为goto:@命令定义符号。我需要解释此正则表达式转换的帮助:
<key>symbolTransformation</key>
<string>s/\/\*\*\s*(.*?)\s*\*\//** $1 **/; s/\/\*.*?\*\*\//./; s/\/\*[^\*].*?[^\*]\*\///</string>
symbolTransformation
s/\/\*\*\s*(.*?\s*\*\/**$1**/;s/\/\*.*?\*\*/./;s/\/\*[^\*].?[^\*]\*\///
我的意图是编辑转换,但我需要首先理解它
有没有关于学习这种特殊语法的参考?我对正则表达式和所有的\和/使我发疯!:)
如果没有,有人能给我介绍一下它的各个部分吗?如果我们“打开”正则表达式,它们分别是:
- 用
**$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 '/'.
并将所有这些替换为空字符串。解释得很好!非常感谢。