繁体   English   中英

嵌套值的正则表达式

[英]regex for nested values

我正在尝试从看起来像这样的字符串中获取数字/小点

"[123][456][abc]"

另外,我不想包含“ [”或“]”,并且我想将值分开。

试试看它的大小。

/\[(\d+|[a-zA-Z]+)\]/

编辑:

如果可以支持先行和后行

/(?<=\[)(\d+|[a-zA-Z]+)(?=\])/

另一个编辑:

试试这个在JavaScript

var text = "[12][34][56][bxe]";
var array = text.match(/(\d+|[a-zA-Z]+)/g);

如果我们知道该语言,这会容易得多。 例如,在Javascript中,您可以执行以下操作:

"[123][456][abc]".split(/[\[\]]/);

同样在Python中:

>>> import re
>>> re.split(r'[\[\]]', "[123][456][abc]")
['', '123', '', '456', '', 'abc', '']

我敢肯定,也有其他语言可以做到这一点。

请参阅http://www.regular-expressions.info/javascript.html ,尤其是“如何使用JavaScript RegExp对象”部分:

如果要检索匹配的字符串部分,请调用您创建的RegExp对象的exec()函数,例如:mymatch = myregexp.exec(“ subject”)。 该函数返回一个数组。 数组中的第零项将保存与正则表达式匹配的文本。 下列各项包含与正则表达式中的捕获括号匹配的文本(如果有)。 mymatch.length表示match []数组的长度,比正则表达式中捕获组的数量多一。 mymatch.index表示匹配正则表达式的主题字符串中的字符位置。 mymatch.input保留主题字符串的副本。

这就解释了如何访问带有括号的组。 您可以将其与/\\[(\\w+)\\]/g类的模式结合使用

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM