Javascript正则表达式捕获提供意外结果
我正在尝试捕获第一个Javascript正则表达式捕获提供意外结果,javascript,regex,Javascript,Regex,我正在尝试捕获第一个之前的所有数据。到目前为止,我得到的是 常量regex=/(*)(?=)/g; var s=“Mike_Jones_Jr”; console.log(s.match(regex))您只需使用拆分 注意:-第二个参数是限制最终输出中的元素数量 var s=“Mike_Jones_Jr”; 控制台日志(s.split(“1”)创建一个捕获组((括号之间的某个东西)),该组从行的开头(^)开始,并且是惰性的(*?),然后获取匹配数组中的第二项 const regex=/(^
之前的所有数据。到目前为止,我得到的是
<代码>常量regex=/(*)(?=)/g;
var s=“Mike_Jones_Jr”;
console.log(s.match(regex))
您只需使用拆分
注意:-第二个参数是限制最终输出中的元素数量
var s=“Mike_Jones_Jr”;
控制台日志(s.split(“1”)创建一个捕获组((括号之间的某个东西)
),该组从行的开头(^
)开始,并且是惰性的(*?
),然后获取匹配数组中的第二项
const regex=/(^.*?)
console.log('Mike_Jones_Jr'.match(regex)[1]| |')
console.log(`Mike
_小琼斯“匹配(正则表达式)[1]| |“”)
使用*/
^从字符串的开头开始查看
[^否定_
*提供任意数量的字符
const regex=/^[^33;]*/;
var s=“Mike_Jones_Jr”;
console.log(s.match(regex))代码>很明显,您的期望是错误的。如果您只想在第一个\uu
之前输入文本,为什么不s.split(“\u”)[0]
?尝试提高我对正则表达式的理解。匹配的文档记录如下。为什么需要字符串?s.substring(0,s.indexOf(“''))
就可以了。如果
是字符串的第一个字符,则第二个版本将失败。没错,我将删除第二个选项。您可以刚刚修复它:/^[^]*/
。如果字符串中的第一个\uuu
前面有一个换行符,则该操作将失败。@melpomene OK通过添加s
标志进行修复。请注意,Firefox、IE或Edge不支持s
。
var s = "Mike_Jones_Jr";
console.log(s.split('_')[0]);