繁体   English   中英

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

[英]Javascript regex starts with a square bracket and a letter and ends with a square bracket

我试图找到一些以[S开头并以]结尾的字符串的索引,基本上它看起来像[S12] 。整个想法是获取此“ 12”值,获取开始索引及其结束标记start索引,并将根据其具有的值将其替换为一些值。

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

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/

任何文档/帖子/帮助都不错:)

请尝试以下操作:

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

应该捕获任何字母(如果只想用S,然后用\\ S替换\\ w),然后是任意数量的数字(因此您有标签)和内容,只要有一个结束标签即可,即:

[W20]this is a test[/W20]

会捕获

W20

this is a test

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

您可以使用:

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

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

在您的第一个正则表达式(^[S&,])[S&,]允许S&, ^是字符串的开始, ()捕获了值。 因此,只有一个字符串开头的S&或者,会匹配/被抓获。

您可以在regex101 https://regex101.com/r/nmWbEG/1上看到有关我的正则表达式的说明。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM