我正试图从一个看起来像这个
的字符串中获取数字/叮咬"[123][456][abc]"
此外,我不想包含“[”或“]”,我希望将值保持分开。
答案 0 :(得分:1)
尝试使用此尺寸。
/\[(\d+|[a-zA-Z]+)\]/
编辑:
如果你能支持前瞻和后视
/(?<=\[)(\d+|[a-zA-Z]+)(?=\])/
另一个编辑:
在javascript中试试这个
var text = "[12][34][56][bxe]";
var array = text.match(/(\d+|[a-zA-Z]+)/g);
答案 1 :(得分:1)
如果我们知道这种语言,这将会容易得多。例如,在Javascript中你可以这样做:
"[123][456][abc]".split(/[\[\]]/);
和Python类似:
>>> import re
>>> re.split(r'[\[\]]', "[123][456][abc]")
['', '123', '', '456', '', 'abc', '']
我确信在其他语言中也有办法做到这一点。
答案 2 :(得分:1)
请参阅http://www.regular-expressions.info/javascript.html,特别是“如何使用JavaScript RegExp对象”部分:
如果你想检索部分 匹配的字符串,调用 RegExp对象的exec()函数 你创造的,例如:mymatch = myregexp.exec( “对象”)。这个 function返回一个数组。第0个 数组中的项将保存文本 这与常规相匹配 表达。以下项目 包含匹配的文本 在正则表达式中捕获括号, 如果有的话。 mymatch.length表示 match []数组的长度,即 比捕获的数量多一个 正则表达式中的组。 mymatch.index表示该字符 在主题字符串中的位置 正则表达式匹配的。 mymatch.input保留了一份副本 主题字符串。
这解释了如何访问各个带括号的组。您可以将其与/\[(\w+)\]/g