JavaScript正则表达式在文本之间得到一个单词

时间:2012-03-27 13:33:10

标签: javascript regex custom-controls

在javascript中,我需要在自定义标记中获取文本。例如

  

[tag_ 转发 attr =“val”attr2 =“val”]

在这种情况下,我需要单词“转推”只跳过所有其他文本而另一个例子是,

  

[tag_的份额

在这里,我需要得到“分享”这个词。

那么在我的案例中获取标记名称的正则表达式是什么?

3 个答案:

答案 0 :(得分:1)

捕获它的正则表达式将是:

/.*\[tag_(.*?)\W.*/

这匹配任何字符直到[tag_的末尾,然后开始捕获任何字符,直到遇到非单词字符,然后是其他任何字符。该比赛仅包含重要部分。

使用它像:

myString.match(/.*\[tag_(.*?)\W.*/)[1]

答案 1 :(得分:1)

基本上,你正在寻找[tag_后的内容,直到下一个空格(或标签的末尾)

所以:

var tag = '[tag_retweet attr="val" attr2="val"]';
// or var tag = '[tag_share]';
var match = tag.match(/\[tag_(.*?)[\] ]/)[1];

答案 2 :(得分:1)

/\[tag_([a-z0-9_]+)(?:\s+|\])/

这样的东西
var tag = '[tag_retweet attr="val" attr2="val"]';
var match = tag.match(/\[tag_([a-z0-9_]+)(?:\s+|\])/);
window.alert(match[1]);​ // alerts "retweet"