regex - Perl:请求改进我的 REGEX(仅与正/负整数/小数和逗号匹配)
问题描述
很难描述我会做什么。所以我举个例子。
我的字符串:
my $string = q(
min_entry = -0.236, 0, 0.236 , 0.382, 0.500, 0.618, 0.764
max_entry=0.236, 0.382, 0.500, 0.618, 0.764, 1.000
#jakis komentarz
rsi_confirm= 25,27,30, 32
slope3 = 0.236, 0.382, 0.5, 0.764
min_tp=0.0125 , 0.0236, 0.0382, 0.05, 0.0764, 0.1
interval = 14
[thresholds]
low = 40
high = 40
persistence = 9
我的匹配模式:
my @match = $string =~ /(([\d-\.]+[, ]+)+[\d-\.]+)/sg;
print Dumper \@match;
我的结果:
$VAR1 = [
'-0.236, 0, 0.236 , 0.382, 0.500, 0.618, 0.764',
'0.618, ',
'0.236, 0.382, 0.500, 0.618, 0.764, 1.000',
'0.764, ',
'25,27,30, 32',
'30, ',
'0.236, 0.382, 0.5, 0.764',
'0.5, ',
'0.0125 , 0.0236, 0.0382, 0.05, 0.0764, 0.1',
'0.0764, '
];
我不知道为什么或如何在我的正则表达式中添加索引为 1(value '0.618, ',), 3 (value '0.764, ',), 5, 7, 9 的元素。但我不需要它。
我想达到的结果:
print Dumper \@match;
$VAR1 = [
'-0.236, 0, 0.236 , 0.382, 0.500, 0.618, 0.764',
'0.236, 0.382, 0.500, 0.618, 0.764, 1.000',
'25,27,30, 32',
'0.236, 0.382, 0.5, 0.764',
'0.0125 , 0.0236, 0.0382, 0.05, 0.0764, 0.1',
]
请根据我的正则表达式回答。唯一重复的字符串标识字符是“=”或“=”(在模式之前)和“,”(在模式的中间)
解决方案
你有两个括号组,一个在另一个里面。内在的每秒钟产生一次结果。您应该为内部分组使用非捕获组。
推荐阅读
- python - 如何使用 xml.etree.ElementTree 将 HTML 写入 XML 文件?
- google-colaboratory - 在 google colab 上从 object 更改为 int
- firebase - 无法从 Flutter 中的 Firebase Firestore 返回列表
- r - 在 R 中绘制“流行时间”图
- c++ - 在 TextAdventur 游戏中分配指向位置的指针的问题
- javascript - 使用Python3高效修改javascript
- swift - DeviceMatchingCallback 永远不会退出 runloop
- java - 在 Java 中将数组作为 setter 传递
- if-statement - 如何使动态表显示不在工作表中的值,但它可能是变量的结果?
- python - 打开 *.hdr; *.mhd; Pyhton 中的 *.sin 和 *.mac 与 jupyther notebook