在Javascript中,我希望得到一个字符串,表示两个括号之间的所有文本,即使该字符串包含更多的括号。
其工作如下:
"(a)(b)(c)"。匹配(某物);
[“a”、“b”、“c”]
或者
“a”
“((a)(b)(c))”。匹配(某物);
(a)(b)(c)
你在乎父母是否匹配吗?如果是这样,您将不得不使用堆栈,而不能使用正则表达式。
试着这样做:
var str = "aaa((0)12(2))bbb";
var stack = [];
var result ="";
var start = false;
for (var i = 0; i < str.length; i++) {
switch (str[i]) {
case '(':
stack.push('(');
if (!start) {
start = true;
continue;
}
result += str[i];
break;
case ')':
if (stack[stack.length - 1] === '(') {
stack.pop();
if (stack.length === 0) {
start = false;
continue;
}
result += str[i];
} else {
//not balanced!
}
break;
default:
if (start){
result += str[i];
}
}
}
console.log(result);
这应该可以做到:
(?:\()[^\(\)]*?(?:\))
\(
匹配开括号\)
匹配后括号[^\(\)]
匹配除了更多括号以外的任何内容*?
在上述模式中添加一个0或更多次的量词(因而变得懒惰?
)尝试:
your_string.match(/(?:\()[^\(\)]*?(?:\))/g)
我想在像这样的文本中插入()并将它们放入数组中,但里面可能有一些嵌套的括号。 文本: 应该这样处理: 我怎么能这么做?
如何使用JavaScript中的正则表达式从下面句子中两个圆括号之间检索单词? “这是(我的)简单文本”
在括号()之间获取文本的Reg表达式,我尝试过,但我没有得到RegEx。对于这个例子 例子:-
问题内容: 如何从中提取字符串并使用模式匹配或其他方法。例如,如果文本是` “您好(Java)” 然后如何获得。 谢谢。 问题答案: 试试这个: 要么
我需要在和之间匹配文本示例: 我需要匹配这个文本 简单正则表达式将正常工作,直到我在文本中放置一些 文本内的卷括号配对以匹配。 有没有可能通过正则表达式来解决这个问题?
问题内容: 我需要某种方式来捕获方括号之间的文本。因此,例如,以下字符串: 可用于创建以下数组: 我有以下正则表达式,但它仅捕获第一个实例,因此: 如何获得所需的输出?请注意,方括号从不嵌套,因此不必担心。 问题答案: 匹配所有带括号的字符串: 如果要不带括号的字符串: 不带括号的替代版本,较慢的匹配版本(使用“ *”代替“ [^]”):