如何为此做出正则表达式?

时间:2012-02-15 16:20:03

标签: regex pcre autoit

我想制作一个正则表达式来匹配一个字符串,如:

Function_Name ( 'parameters' ) Function Description

所以我得到了名字,参数和描述。

3 个答案:

答案 0 :(得分:4)

假设参数由,分隔。PCRE正则表达式适用于您。

(\w+)\s+\(([^\)]+)\s+(.+)

子组1>功能名称
<小组2>参数
<小组3>功能描述

答案 1 :(得分:2)

如果您使用AutoIt,正如标记所示,该模式应该是PCRE。

(\w+)\s*\(\s*([^)]+)\s*\)\s*(.+)

这是Shiplu建议的模式的略微修改版本。 它有可选的空格,因此它们不会在匹配中结束,而右括号也是如此。也没有必要转义字符集中的括号。

  • (开始捕获第1组
  • \w+匹配一个或多个单词字符(字母数字和下划线)
  • )关闭捕获组1
  • \s*匹配零个或多个空格字符
  • \(匹配开幕式
  • \s*匹配零个或多个空格字符
  • (开始捕获第2组
  • [^)]+匹配一个或多个不是右括号的字符
  • )关闭捕获组2
  • \s*匹配零个或多个空格字符
  • \)匹配右括号
  • \s*匹配零个或多个空格字符
  • (开始捕获第3组
  • .+匹配一个或多个不是空格的字符
  • )结束捕获组3

答案 2 :(得分:1)

我正在编写Python Regex,但我认为将它传递给PHP或Perl并不困难。

我的猜测是这样的,但我不确定第二个.*,是否能正确捕捉EOL。

(\w+)\s\(\s'\s(.+)\s'\s\)\s(.*)