我在正则表达式(.NET语法,我正在使用RegexOptions.Singleline)中的可选组有问题。正则表达式和一个可选字符串
"function (\w*).*?{(?:.*?\((.*?)\))?.*?}"
也试过了,没有效果: "function (\w*)[^{]+{(?:.*?\((.*?)\))?.*?}"
它看起来像群是不可选的,因为如果我只是在FunctionWithNoParameters那么一切都工作正常,添加两个括号。目标是有两个组:函数名称和它们的可选参数。有人能帮我吗?
我试图解析的文字是这样的:
function test1
{
param ([int]$parm2, [bool]$parm3)
}
function FunctionWithNoParameters {
return "nothing"
}
function test2 {
param([string]$parm1,
[int]$parm2,
[bool]$parm3)}
谢谢, 亚历克斯
你不想用正则表达式来解析非常规语言,对吗? – Gumbo 2009-12-23 13:51:16
不,我不是。这可能不是最好的办法,对于这个问题;) 我想获得一个PowerShell脚本中的所有功能(和他们的参数)... – Alex 2009-12-23 13:54:57