RegEx使用可选的文字

时间:2016-03-11 03:18:57

标签: javascript regex

我正在尝试匹配一个符号可能会或可能没有结束的所有内容。

使用adsf>adsfasdfad<sfad>sfadfadf之类的字符串,我试图在>之后进行匹配,但可以使用<

来中断

我已经尝试了很多次迭代,我最接近工作的是\>(.*?)(?:\<?),但这仍然会在sfad<之间捕获>,实际上我想要忽略sfad

我正在尝试让字符串匹配如下:
adsf>adsfasdfad<sfad>sfadfadf会有两场比赛 adsfasdfad
sfadfadf

如果不存在<,则字符串的其余部分将匹配。 ><的数量没有限制。

3 个答案:

答案 0 :(得分:0)

正如Tushar所说,这应该可以实现你想要的,但你需要检查第一个捕获组($1替换):

>([^><]*)

我不知道您的用例,但如果您还希望匹配反斜杠转义的<>字符,您可以执行以下操作:

>((?:\\<|\\>|[^><])*)

Test here

行动准则:

var input = 'adsf>adsfasdfad<sfad>sfadfadf';
var regex = />([^><]*)/g;

var matches, output = [];
while (matches = regex.exec(input)) {
    output.push(matches[1]);
}
document.write(output);

答案 1 :(得分:0)

或试试这个:

(?:>([^<>]+))

DEMO.

答案 2 :(得分:0)

您可以使用以下正则表达式执行此操作:

/(?:\>)([^<]+)/g

请参阅演示here

匹配的内容将在$1

输出:

adsfasdfad
sfadfadf