[英]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
您可以使用:
\[(S\d+)\]+(.*?)\[\/\1\]
捕获[s
,任何数字和一个结束]
与匹配的结束块之间的文本。 使用此正则表达式,包含的文本将位于第二个捕获组中。
在您的第一个正则表达式(^[S&,])
, [S&,]
允许S
, &
或,
。 ^
是字符串的开始, ()
捕获了值。 因此,只有一个字符串开头的S
, &
或者,
会匹配/被抓获。
您可以在regex101 https://regex101.com/r/nmWbEG/1上看到有关我的正则表达式的说明。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.