Javascript正则表达式以方括号和字母开头,以方括号结尾

时间:2017-01-11 19:46:31

标签: javascript regex

我正在尝试找到一些以[S开头并以]结尾的字符串的索引,基本上它看起来像[S12]。整个想法是为了得到这个“12 “value,get start index及其结束标记起始索引,并将根据其具有的值替换为某些值。

我对正则表达式没有任何经验。我开始这样的事情

var pattern = /(^[S&,])/;
var string = 'Text that [S0]has new[/S0] tag '
var result = pattern.test(string);

但是真的无法上班。如果我不误,这种模式意味着它以[S开头,以]结尾。

我想要的结果是Text that <span class="class12">has new</span> tag

这是jsfiddle https://jsfiddle.net/970ygfkh/

任何文档/帖子/帮助都很好:)

2 个答案:

答案 0 :(得分:0)

尝试以下方法:

\[(\w\d+)\](.*)\[\/\1]

应该捕获任何字母(如果你只想要S然后用S替换\ w),后跟任意数量的数字(所以你有标签)及其内容,只要有一个结束标记,即:

[W20]this is a test[/W20]

捕捉

W20

this is a test

https://regex101.com/r/uiLlM0/1示例

答案 1 :(得分:0)

您可以使用:

\[(S\d+)\]+(.*?)\[\/\1\]

捕获[s,任意数字和结束]与匹配的结束块之间的文本。使用此正则表达式,包含的文本将位于第二个捕获组中。

(^[S&,])允许[S&,]S&的第一个正则表达式,中。 ^是字符串的开头,()捕获了该值。因此,只有以S&,开头的字符串才会匹配/被捕获。

你可以在regex101上看到我的正则表达式的解释,https://regex101.com/r/nmWbEG/1