正则表达式找到输入值属性

时间:2012-06-14 10:36:34

标签: c# regex

我有一个输入类型=“文本”字段我要从中获取值属性但条件是输入标记的id必须包含“PlaceHolderSearchArea”这个术语

输入字段的html就像这样

<input name="ctl00$PlaceHolderSearchArea$SearchBox$S633C1122_InputKeydummywords" type="text" value="something something" maxlength="200" id="ctl00_PlaceHolderSearchArea_SearchBox_S622C1022_InputKeywords" accesskey="S" title="something..." class="ms-sbplain" alt="something..." onkeypress="javascript: return S633C1122_OSBEK(event);" onfocus="if (document.getElementById('ctl00_PlaceHolderSearchArea_SearchBox_ctl04').value =='0') {this.value=''; if (this.className == 's4-searchbox-QueryPrompt') this.className = ''; else this.className = this.className.replace(' s4-searchbox-QueryPrompt',''); document.getElementById('ctl00_PlaceHolderSearchArea_SearchBox_ctl04').value=1;}" onblur="if (this.value =='') {this.value='Enter Search Term'; if (this.className.indexOf('s4-searchbox-QueryPrompt') == -1) this.className += this.className?' s4-searchbox-QueryPrompt':'s4-searchbox-QueryPrompt'; document.getElementById('ctl00_PlaceHolderSearchArea_SearchBox_ctl04').value = '0'} else {document.getElementById('ctl00_PlaceHolderSearchArea_SearchBox_ctl04').value='1';}" style="width:170px;" />

有人可以建议正则表达式实现这个

2 个答案:

答案 0 :(得分:0)

试试这个 - 但我并不是非常确信它是完美的。

/(?:id=('|")[^\1]*PlaceHolderSearchArea[^\1]*\1[^>]*)value=('|")(.*?\2)/

唯一的事情是假设ID属性在值之前。

适用于此示例(JS)

'<input name="ctl00$PlaceHolderSearchArea$SearchBox$S633C1122_InputKeydummywords" type="text" value="something something" maxlength="200" id="ctl00_PlaceHolderSearchArea_SearchBox_S622C1022_InputKeywords" accesskey="S" value="hello" title="something..." class="ms-sbplain" alt="something..." style="width:170px;" />'.match(/(?:id=('|")[^\1]*PlaceHolderSearchArea[^\1]*\1[^>]*)value=('|")(.*?\2)/);

答案 1 :(得分:0)

@"(<input)([^>]*)(type=\"")(text)(\"")([^>]*)(value=\"")([^\""]*)(\"")([^>]*)(id=\"")(\w*PlaceHolderSearchArea\w*)(\"")([^>]*)(/>)"

上面的表达为我做了伎俩