需要正则表达式帮助

时间:2013-11-14 17:26:02

标签: regex powershell

我需要最简单的正则表达式来查找 AND 之间的两个引号之间的所有文本需要以\<(input | select | textarea)name \ =

开头

我已经能够搜索两个引号之间的所有文本。我也能够找到上面显示的上述要求。但是,我无法将两者结合起来。这是我能来的最近的地方:

^\<(input|select|textarea) name\=[""'])(?:(?=(\\?))\2.)*?\1$

..align="right" style="white-space:nowrap;"><input name="MainPage$LastName"..
..align="right" style="white-space:nowrap;"><input name="MainPage$email"..
..align="right" style="white-space:nowrap;"><input name="MainPage$phone"..
..align="right" style="white-space:nowrap;"><select name="MainPage$CountryDropDownList"..
..align="right" style="white-space:nowrap;"><input name="MainPage$Description"..
..align="right" style="white-space:nowrap;"><textarea name="MainPage$DescribeHere"..

预期结果:

MainPage$LastName
MainPage$email
MainPage$phone
MainPage$CountryDropDownList
MainPage$Description
MainPage$DescribeHere

4 个答案:

答案 0 :(得分:1)

我在一些W3C表单教程页面上尝试了这个,它找到了所需的元素:

$pattern = '(?is)<(input|select|textarea)\s+.*?(?:id|name)\s*=\s*"([^"]+)"'
Select-String -inp $wr.RawContent -pattern $pattern -AllMatches | 
    Foreach {$_.Matches} | 
    Foreach {"Element: $($_.Groups[1].value) key: $($_.Groups[2].value)"}

答案 1 :(得分:0)

考虑以下Regex ......

(?<=\<(input|select|textarea) name\=[\""|\']).*?(?=\"")

祝你好运!

答案 2 :(得分:0)

这个怎么样:

(?:\<(input|select|textarea) name\=)(["'])(?<Name>.*)?\2

您想要的捕获将被称为Name,它确保开头引号(无论它们是什么类型的引号)与您的结束引号匹配。

希望这可以解决问题!!

答案 3 :(得分:0)

我有这个:

$text = 
(@'
..align="right" style="white-space:nowrap;"><input name="MainPage$LastName"..
..align="right" style="white-space:nowrap;"><input name="MainPage$email"..
..align="right" style="white-space:nowrap;"><input name="MainPage$phone"..
..align="right" style="white-space:nowrap;"><select name="MainPage$CountryDropDownList"..
..align="right" style="white-space:nowrap;"><input name="MainPage$Description"..
..align="right" style="white-space:nowrap;"><textarea name="MainPage$DescribeHere"..
'@)


$regex = [regex]'(?:input|select|textarea)\sname="([^"]+)'

$regex.matches($text) |
foreach {$_.groups[1].value}

MainPage$LastName
MainPage$email
MainPage$phone
MainPage$CountryDropDownList
MainPage$Description
MainPage$DescribeHere