Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 获取括号之间的文本_Javascript_Regex_String - Fatal编程技术网

Javascript 获取括号之间的文本

Javascript 获取括号之间的文本,javascript,regex,string,Javascript,Regex,String,在Javascript中,我希望得到一个字符串,表示两个括号之间的所有文本,即使该字符串包含更多的括号 其工作如下: (a)(b)(c)匹配(某物) [“a”、“b”、“c”] 或 “a” ((a)(b)(c))。匹配(某物) (a)(b)(c) 这应该可以做到: (?:\()[^\(\)]*?(?:\)) 工作原理 \(匹配左括号 \)匹配右括号 [^\(\)]匹配除更多括号外的任何内容 *?向上述模式添加一个零次或多次量词(由?设置为惰性) JavaScript实现 尝试: 你在乎

在Javascript中,我希望得到一个字符串,表示两个括号之间的所有文本,即使该字符串包含更多的括号

其工作如下:

(a)(b)(c)匹配(某物)

[“a”、“b”、“c”]

“a”

((a)(b)(c))。匹配(某物)

(a)(b)(c)


这应该可以做到:

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

工作原理
  • \(
    匹配左括号
  • \)
    匹配右括号
  • [^\(\)]
    匹配除更多括号外的任何内容
  • *?
    向上述模式添加一个零次或多次量词(由
    设置为惰性)

JavaScript实现 尝试:


你在乎父母是否匹配吗? 如果是这样,您将不得不使用堆栈,而不能使用正则表达式

试着这样做:

var str=“aaa((0)12(2))bbb”;
var堆栈=[];
var结果=”;
var start=false;
对于(变量i=0;iconsole.log(result);
到目前为止您尝试了什么?/([^)]+)/-但是它返回[((a)”,“(a“]表示字符串”((a)(b)(c))“我很确定这样的语言是不规则的,因为识别引擎需要堆栈(或者使用非常量内存)。正则表达式不太可能是这项工作的正确工具。这也是我的想法。从我的CS类中,我认为它需要一个图灵机,但我不知道如何在JavaScript中实现这一点。“((A)(b)(c))”。match(/([^()]*?)/)-但它返回[“(A)”-不用解释,不起作用(尝试
((A)b(c))
)不起作用,但谢谢你的正则表达式解释。@Carnic检查我的编辑!:D只需要一些非捕获组你是个天才!非常感谢你^ ^ ^在我的场景中,参数总是匹配的。谢谢,这个答案是可靠的。所以我的问题实际上是问括号内的文本。所以我稍微调整了一下你的代码。
your_string.match(/(?:\()[^\(\)]*?(?:\))/g)