javascript - 匹配字符但不包括该字符和之后的所有内容

标签 javascript regex

在有人说它是 this 的副本之前或 this . JavaScript没有 look behind所以我一直在努力解决这个问题。它确实有 look ahead如前所述here

我真正想做的是这个。我有:-
hey:blah,{'some':'obj','another':[4,5,0]}

我想提取所有内容,但不包括第一个 : . 所以我的输出是:-
blah,{'some':'obj','another':[4,5,0]}

到目前为止我的尝试:-
(:.+) //gives :blah,{'some':'obj','another':[4,5,0]} - 注意它有 :
[^\w:].+ //gives ,{'some':'obj','another':[4,5,0]} - 不是我预期的结果。 blah丢失了。

我正在尝试在纯正则表达式中执行此操作,并试图避免循环或任何此类字符串操作。
到目前为止,我的尝试无济于事。

最佳答案

正则表达式

如果你不想选择任何东西,你可以把它包装在一个 look-ahed 中:

(?=:(.*))

如果你想去到下面的冒号:

(?=:([^:]*))

JavaScript 代码

因为没有选择任何东西,[0] 将是空白的。访问[1]:

/(?=:(.*))/.exec("hey:blah,{'some':'obj','another':[4,5,0]}")[1];
//                         Use [1] not [0]                       ^^

也就是说,有什么问题吗:

var str = "hey:blah,{'some':'obj','another':[4,5,0]}";
str.substr(str.indexOf(':') + 1);

关于javascript - 匹配字符但不包括该字符和之后的所有内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30950359/

相关文章:

javascript - 创建用于向元素添加样式的原型(prototype)函数

javascript - 在 Chrome/webkit 的 contenteditable div 层中设置插入符号位置

regex - 将 glob 转换为正则表达式或让 Perl 处理 glob 模式

regex - htaccess 根据前两个后两个字符重写规则

jQuery 验证 : How to add a rule for regular expression validation?

匹配特定域及其子文件夹的正则表达式

javascript - x || 之间的任何区别[] 和 x ?? [] 在 JavaScript 中?

javascript - 调用 json 中的第一个字符串

javascript - 在 ANGULAR 中迭代一个函数

r - strsplit 返回不可见元素