Javascript 匹配内部代码而不考虑任何换行文本
如果我有一个字符串,比如:Javascript 匹配内部代码而不考虑任何换行文本,javascript,regex,Javascript,Regex,如果我有一个字符串,比如: [code]var foo = { bar: 'bar', baz: 'baz' };[/code] 我可以使用/^(?:\[code\])?([\s\s]*?)(?:\[\/code\])?$/I来获取内部文本(在[code]和[/code]之间),而不管它是否被代码标记包围 我想做的是让开始和结束标记更模糊一些。我通过用户对内部代码的选择得到了这个文本,因此选择可能不是完美的,选择可能会进入代码标签。选择可能类似于: ode]var foo =
[code]var foo = {
bar: 'bar',
baz: 'baz'
};[/code]
我可以使用/^(?:\[code\])?([\s\s]*?)(?:\[\/code\])?$/I
来获取内部文本(在[code]
和[/code]
之间),而不管它是否被代码标记包围
我想做的是让开始和结束标记更模糊一些。我通过用户对内部代码的选择得到了这个文本,因此选择可能不是完美的,选择可能会进入代码标签。选择可能类似于:
ode]var foo = {
bar: 'bar',
baz: 'baz'
};[/co
但我仍然只想要内部代码。哪种最好的方式可以匹配代码标记,即使不是全部都匹配?您可以只使用括号而不是完整标记,如下所示:
\]([\s\S]*?)\[\/
为什么不在
]
和[
之间获取代码?您可以保证始终存在哪些字符?下面的答案是一个很好的解决方案。@MitchellSimoens顺便说一句,您也可以使用(?s)\](.*?\[\/