这是我的字符串:
<address>tel+1234567890</address>
这是我的正则表达式:
([\d].*<)
匹配这个:
1234567890&LT;
但我不想匹配最后一个<
字符。
答案 0 :(得分:2)
您可以使用positive lookahead:
\d+(?=<)
(?=
... )
语法确保parens里面的内容在该位置匹配,而不向前移动匹配光标,因此不会消耗输入字符串。它也被称为零宽度断言。
顺便说一句,[\d]
中的方括号是多余的,因此您可以省略它们。另外,我已经改变了正则表达式,但也许你真的想要匹配这个:
\d.*?(?=<)
此模式匹配数字与<
之间的所有内容,包括数字。它使用了一个不合理的量词(*?
)来匹配到第一个<
,如果有几个。
答案 1 :(得分:1)