我有以下输入值,我希望有人可以告诉我匹配所有“值”的最佳方法(217,218,219) - html被转义,这就是我需要匹配的东西。
<input type=\"hidden\" name=\"id\" value=\"217\"\/>
<input type=\"hidden\" name=\"id\" value=\"218\"\/>
<input type=\"hidden\" name=\"id\" value=\"219\"\/>
答案 0 :(得分:4)
根据您对其他回复的评论,您实际上只想匹配数字name=\"id\" value=\"###\"
,因此有四种可能性,具体取决于您希望匹配的精确程度。另外,根据您的评论,我使用javascript作为实现语言。
另请注意,上一个答案错误地转义了id和值字符串周围的斜杠。
FWIW,我测试了以下每个选项:
//build the pattern
var pattern = /name=\"id\" value=\"([0-9]+)\"/g
//run the regex, after which:
// the full match will be in array_matches[0]
// the matching number will be in array_matches[1]
var array_matches = pattern.exec(strVal);
//build the pattern
var pattern = /name=\"id\" value=\"([0-9]{3})\"/g
//run the regex, after which:
// the full match will be in array_matches[0]
// the matching number will be in array_matches[1]
var array_matches = pattern.exec(strVal);
//build the pattern; modify to fit your ranges
// This example matches 110-159 and 210-259
var pattern = /name=\"id\" value=\"([1-2][1-5][0-9])\"/g
//run the regex, after which:
// the full match will be in array_matches[0]
// the matching number will be in array_matches[1]
var array_matches = pattern.exec(strVal);
//build the pattern; modify to fit your numbers
// This example matches 217, 218, 219 and 253
var pattern = /name=\"id\" value=\"(217|218|219|253)\"/g
//run the regex, after which:
// the full match will be in array_matches[0]
// the matching number will be in array_matches[1]
var array_matches = pattern.exec(strVal);
答案 1 :(得分:1)
我不知道用什么语言,但假设您显示的代码是一个字符串(因为您转义了所有引号),您可以将该字符串传递到以下匹配任何数字序列的正则表达式。
/([0-9]+)/g
根据您使用的语言,您需要移植此正则表达式并使用正确的函数。
在JS中你可以使用:
var array_matches = "your string".match(/([0-9]+)/g);
在PHP中你可以使用:
preg_match("([0-9]+)", "your string", array_matches);