我正在尝试找到一些以[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/
任何文档/帖子/帮助都很好:)
答案 0 :(得分:0)
尝试以下方法:
\[(\w\d+)\](.*)\[\/\1]
应该捕获任何字母(如果你只想要S然后用S替换\ w),后跟任意数量的数字(所以你有标签)及其内容,只要有一个结束标记,即:
[W20]this is a test[/W20]
捕捉
W20
和
this is a test
答案 1 :(得分:0)
您可以使用:
\[(S\d+)\]+(.*?)\[\/\1\]
捕获[s
,任意数字和结束]
与匹配的结束块之间的文本。使用此正则表达式,包含的文本将位于第二个捕获组中。
在(^[S&,])
允许[S&,]
,S
或&
的第一个正则表达式,
中。 ^
是字符串的开头,()
捕获了该值。因此,只有以S
,&
或,
开头的字符串才会匹配/被捕获。
你可以在regex101上看到我的正则表达式的解释,https://regex101.com/r/nmWbEG/1。