0

我需要最简单的正则表达式来查找下面两个引号之间的所有文本,并且需要在前面加上 \<(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

4 回答 4

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)"}
于 2013-11-14T22:10:55.470 回答
0

那这个呢:

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

将调用您所需的捕获Name,并确保开头引号(无论它们是哪种引号)与您的结尾引号匹配。

希望这能解决问题!

于 2013-11-14T17:37:58.943 回答
0

考虑以下正则表达式...

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

祝你好运!

于 2013-11-14T17:33:22.407 回答
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
于 2013-11-14T19:13:42.847 回答