我想使用正则表达式匹配字符串的一部分,然后访问该带括号的子字符串:
var myString = "something format_abc"; // I want "abc"
var arr = /(?:^|\s)format_(.*?)(?:\s|$)/.exec(myString);
console.log(arr); // Prints: [" format_abc", "abc"] .. so far so good.
console.log(arr[1]); // Prints: undefined (???)
console.log(arr[0]); // Prints: format_undefined (!!!)
Run Code Online (Sandbox Code Playgroud)
我究竟做错了什么?
我发现有什么不对上述正则表达式代码:实际的字符串,我反对是这样的测试:
"date format_%A"
Run Code Online (Sandbox Code Playgroud)
报告"%A"未定义似乎是一种非常奇怪的行为,但它与此问题没有直接关系,所以我开了一个新的,为什么匹配的子字符串在JavaScript中返回"undefined"?.
问题是console.log它的参数就像一个printf语句,因为我正在记录的字符串("%A")有一个特殊的值,它试图找到下一个参数的值.
它可能看起来很明显,但我浪费了太多时间试图让它工作......
我正在尝试使用Javascript Regex从文件中提取子字符串.这是文件中的一个切片:
DATE:20091201T220000
SUMMARY:Dad's birthday
Run Code Online (Sandbox Code Playgroud)
我要提取的字段是摘要,所以我正在尝试编写一个只返回摘要文本的方法.这是方法:
extractSummary : function(iCalContent) {
/*
input : iCal file content
return : Event summary
*/
var arr = iCalContent.match(/^SUMMARY\:(.)*$/g);
return(arr);
}
Run Code Online (Sandbox Code Playgroud)
显然,我是一个正则表达式noob :))你能解决它吗?谢谢