正则表达式以匹配多组括号之间的所有内容



我正在尝试匹配多组括号之间的所有内容

数据示例

[[42.30722,-83.181125],[42.30722,-83.18112667],[42.30722167,-83.18112667,[42.30721667,-83.181125],[+42.30721667,-83.181125]]

我需要匹配内括号内的所有内容,如下所示

42.30722,-83.181125,
42.30722,-83.18112667,
42.30722167,-83.18112667,
42.30721667,-83.181125,
+42.30721667,-83.181125

我该怎么做。我尝试了[([^[]]|)*]但它给了我带括号的值。任何人都可以帮我解决这个问题。提前致谢

似乎其中一个缺少括号,或者如果没有,也许是类似于以下内容的表达式:

[([+-]?d+.d+)s*,s*([+-]?d+.d+)s*]?

一开始可能没问题。

测试

import re
expression = r"[([+-]?d+.d+)s*,s*([+-]?d+.d+)s*]?"
string = """
[[42.30722,-83.181125],[42.30722,-83.18112667],[42.30722167,-83.18112667,[42.30721667,-83.181125],[+42.30721667,-83.181125]]
"""
print([list(i) for i in re.findall(expression, string)])
print(re.findall(expression, string))

输出

[['42.30722', '-83.181125'], ['42.30722', '-83.18112667'], ['42.30722167', '-83.18112667'], ['42.30721667', '-83.181125'], ['+42.30721667', '-83.181125']]
[('42.30722', '-83.181125'), ('42.30722', '-83.18112667'), ('42.30722167', '-83.18112667'), ('42.30721667', '-83.181125'), ('+42.30721667', '-83.181125')]

如果您希望简化/修改/探索表达式,已在 regex101.com 的右上角面板上进行了说明。如果您愿意,还可以在此链接中观看它如何与一些示例输入匹配。


有点晚了,但我想无论如何我都会包括它。

您的第三组缺少"]"。

如果在那里,那么在 Alteryx 中,您只需使用文本到列拆分为行并忽略括号中的分隔符

相关内容

  • 没有找到相关文章

最新更新