捕获正则表达式的一个或多个匹配项(由捕获组外的字符表示)
Capture one or more occurrences of a regex expression (as denoted by characters outside the capture group)?
var title = '[string A][string B] the rest of the title'
var myRegexp = /'[(.*)']/g;
var match = myRegexp.exec(title);
console.log(match); // prints: 'string A][string B', and not: 'string A', 'string B'
我正在寻找一个正则表达式来捕获一个或多个由一对方括号表示的字符串(在 javascript 中(。我该如何实现此目的?
备用标题大小写包括:">[字符串 A] 一些文本 [字符串 B]"和"[字符串 A] 但没有字符串 b">
谢谢
您需要在循环中调用exec
以使用此正则表达式进行多次匹配:
var re = /'[([^']]*)/g;
var str = '[string A][string B] the rest of the title';
var m;
var matches = [];
while ((m = re.exec(str)) !== null) {
if (m.index === re.lastIndex)
re.lastIndex++;
matches.push(m[1]);
}
console.log(matches);
//=> ["string A", "string B"]
你需要让它不贪婪或使用否定的字符类而不是.*
:
/'[.*?']/g
演示:https://regex101.com/r/tV9qJ3/1
或
/'[[^']]*']/g
演示:https://regex101.com/r/tV9qJ3/2
相关文章:
- 在JavaScript中输出转义字符
- React中的数据集表示
- 不同浏览器中的空白字符正则表达式行为
- Regex匹配除“”之外的所有字符;.js”;
- 拆分文本以每隔n个字符添加一行新行,并注意空格
- 使用RegExp查找url中的字符
- 如何为jQuery屏蔽输入插件创建一个允许字母数字、空格和重音字符的掩码
- 使用正则表达式将输入格式设置为单字符逗号、单字符逗号等
- 允许在文本框中使用某些字符
- 正则表达式表示用连字符分隔的浮点范围(用于年份和月份)
- 如何在正则表达式中表示“不包括边界的此字符”
- Reg ex 表示特定字符之后和其他字符之间的任何内容
- 表示 html 表中各种数组的字符,w/JQuery/JavaScript
- 捕获正则表达式的一个或多个匹配项(由捕获组外的字符表示)
- Regex表示只重复我提供的字符的单词
- 如何检测浏览器's表示“;新行“;有两个字符
- Regexp表示不允许在结束/开始处使用特殊字符,但应该允许空格
- 十六进制的字符表示
- JavaScript中的动态八进制字符表示与直接八进制字符表示
- Javascript 正则表达式表示“至少 X 个字符,有一个大写字母和一个数字”