Javascript RegExp令牌化

时间:2012-01-15 21:42:29

标签: javascript regex parsing

给定一个字符串,我想使用正则表达式来标记它。模式如下:任何字符(包括新行等),直到“<”,后跟空格零或更多次,后跟“%”。 我试过了

var patt = /(.)*<(\s)*%/;

但它没有产生预期的结果。我很感激与模式一起解释。

2 个答案:

答案 0 :(得分:0)

使用此:

"some string".split(/.*<\s*%/);

答案 1 :(得分:0)

/^[\s\S]*?< *%/

应该做你想做的事。

^使其在字符串的开头匹配。

[\s\S]匹配任何字符。从字面上看,它意味着任何空间或非空间角色,并解决.与换行符不匹配的事实。

*?匹配零或更多,但其余模式匹配所需的最少。

<匹配文字'<'

*(注意空格)匹配零个或多个空格。如果写成[ ]*,则更具可读性。

%最终匹配该角色。

如果你想匹配整个字符串(即%应该是字符串中的最后一个字符),那么你可以在$之前放置一个/