繁体   English   中英

JavaScript Regex查找与开始和结束模式匹配的所有子字符串

[英]JavaScript Regex finding all substrings matching the starting and ending pattern

我想要一个Javascript正则表达式,它在给定的字符串中查找所有以特定字符开头和以特定字符结尾的子字符串。 返回的子字符串集可以是一个数组。 例如:STRING:

Body<input value="CourseName" class="emailButtonSnip" type="button"><input value="CourseDescription" class="emailButtonSnip" type="button"><input value="CourseEnrollmentDeadline" class="emailButtonSnip" type="button">"

起始字符= "<input"结束字符= ">"

输出:

<input value="CourseName" class="emailButtonSnip" type="button">
<input value="CourseDescription" class="emailButtonSnip" type="button">
<input value="CourseEnrollmentDeadline" class="emailButtonSnip" type="button">

您可以像这样使用正则表达式进行操作:

var string = 'Body<input value="CourseName" class="emailButtonSnip" type="button"><input value="CourseDescription" class="emailButtonSnip" type="button"><input value="CourseEnrollmentDeadline" class="emailButtonSnip" type="button">';

var re = /\<input.*?\>/ig
var match;
while ((match = re.exec(string)) != null){
  console.log(match[0]);
}

产生:

<input value="CourseName" class="emailButtonSnip" type="button">
<input value="CourseDescription" class="emailButtonSnip" type="button">
<input value="CourseEnrollmentDeadline" class="emailButtonSnip" type="button">

但是,正如评论中指出的那样,这可能不是最好的主意。

编辑 (根据您在注释中的要求):

var string = 'Body<input value="CourseName" class="emailButtonSnip" type="button"><input value="CourseDescription" class="emailButtonSnip" type="button"><input value="CourseEnrollmentDeadline" class="emailButtonSnip" type="button">';

var re = /\<input.*?\>/ig
var match;
while ((match = re.exec(string)) != null){
  var input = match[0],
      re1 = /value="(.*?)"/ig;
  console.log(re1.exec(input)[1]);
}

产生:

CourseName
CourseDescription
CourseEnrollmentDeadline

您当然可以直接匹配原始字符串中的值,但是由于我不知道您要尝试做什么,因此我将其保留为这样。

<[^>]+>

您可以尝试一下。请参阅演示。

https://regex101.com/r/eZ0yP4/11

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM