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 '/'.

并将所有这些替换为空字符串。

解释得很好!非常感谢。