Regex 选择性正则表达式并发症
我有以下意见:Regex 选择性正则表达式并发症,regex,perl,Regex,Perl,我有以下意见: stuff (2+13:02) more stuff (20:32) more more stuff (8+23:00) 2+是可选的,代表一个完全不同的值,因此我编写了以下正则表达式: /((?:(\d)?+?)(\d+:\d+)/g $1应始终是+之前的数字,并将其余数字和:分组到$2中,但这并不总是发生。在(20:32)的示例中,$1将是2,$2将是0:32。如何使$1undef和$2=20:32 有什么想法吗 谢谢大家! 尝试将?移动到您想要可选的组之后。此外,如果要匹
stuff (2+13:02)
more stuff (20:32)
more more stuff (8+23:00)
2+
是可选的,代表一个完全不同的值,因此我编写了以下正则表达式:
/((?:(\d)?+?)(\d+:\d+)/g
$1
应始终是+
之前的数字,并将其余数字和:
分组到$2
中,但这并不总是发生。在(20:32)
的示例中,$1
将是2
,$2
将是0:32
。如何使$1
undef
和$2=20:32
有什么想法吗
谢谢大家! 尝试将
?
移动到您想要可选的组之后。此外,如果要匹配文字+
,通常需要转义+
:
/(?:(\d)\+)?(\d+:\d+)/g
这将符合以下条件:
- 可选的、未捕获的组:
- 第1组中捕获的单个数字
- 文字
+
- 组2中捕获的一个或多个数字,后跟一个
,后跟一个或多个数字:
?
移动到要可选的组之后。此外,如果要匹配文字+
,通常需要转义+
:
/(?:(\d)\+)?(\d+:\d+)/g
这将符合以下条件:
- 可选的、未捕获的组:
- 第1组中捕获的单个数字
- 文字
+
- 组2中捕获的一个或多个数字,后跟一个
,后跟一个或多个数字: