Isn't javascript regex lazy?
Isn't javascript regex lazy?
假设我有输入值:
var input_value = "** foo ** bar **";
然后我运行这个:
input_value = input_value.replace(/('*'*)(['S's.]+)('*'*)/g,replacer_markup);
function replacer_markup(match, p1, p2, p3, offset, string) {
var pre = '';
var post = '';
if (p1 == '**')
{
pre = '<b>';
post = '</b>';
}
return pre+p2+post
}
它会给我:
foo**bar
但相反,我想拥有:
foobar**
我希望得到尽可能小的结果。我怎样才能做到这一点?
很抱歉有拼写错误,我不是母语人士。谢谢你抽出时间。
+
是贪婪运算符—它告诉引擎尽可能多地匹配,并且仍然允许正则表达式的剩余部分匹配。将+?
用于非贪婪匹配,意思是"一个或多个——最好尽可能少"。此外,还可以从字符类中排除.
。
(['S's]+?)
使正则表达式非贪婪:
/('*'*)(['S's.]+?)('*'*)/g
-^-
相关文章:
- RegEx删除空属性?例如,如果(class=“”||class=“”)移除;否则就下课
- jQuery Lazy加载动画滚动
- Regex代码只允许一个空格
- Regex匹配除“”之外的所有字符;.js”;
- RegExp:匹配Javascript中除regex值之外的所有内容
- Javascript RegEx validator
- 使用regex的jquery keydown绑定不会验证撇号和句点
- 制作一个regex来验证只有一个数字的字符串
- RegEx JavaScript:数字后的符号提取
- PHP和Javascript之间的Regex差异
- 链接和youtube的Javascript和regex
- 包含圆括号的JavaScript Regex模式
- 相当复杂的Regex
- 如何在ng regex中包含qutoes+双引号
- 在javascript中,I'我很难弄清楚如何让regex只替换捕获而不替换匹配
- Regex提取URL返回数组的一部分;未定义”;
- 将po-box javascript正则表达式转换为c#regex
- Datatables查询url字符串:需要regex来修复url解析
- Isn't javascript regex lazy?
- Regex Lazy模式不会'没有按预期工作