匹配正则表达式直到一个角色

时间:2015-03-05 18:08:16

标签: javascript regex

这是我的字符串:

<address>tel+1234567890</address>

这是我的正则表达式:

([\d].*<)

匹配这个:

  

1234567890&LT;

但我不想匹配最后一个<字符。

2 个答案:

答案 0 :(得分:2)

您可以使用positive lookahead

\d+(?=<)

(?= ... )语法确保parens里面的内容在该位置匹配,而不向前移动匹配光标,因此不会消耗输入字符串。它也被称为零宽度断言

顺便说一句,[\d]中的方括号是多余的,因此您可以省略它们。另外,我已经改变了正则表达式,但也许你真的想要匹配这个:

\d.*?(?=<)

此模式匹配数字与<之间的所有内容,包括数字。它使用了一个不合理的量词(*?)来匹配到第一个<,如果有几个。

答案 1 :(得分:1)

([\d]+)

这应该可行,试试看,让我知道

检查demo

同样@LucasTrzesniewski说,你可以使用前瞻

(\d+.(?=<))

以下是demo