问题描述
我尝试使用 (?P<Time>.+)\,\s(?P<Station>.+)
,但它没有捕获第一行。
示例字符串是:
9:21:13 AM
9:21:29 AM,TS729
9:21:33 AM,TS729
在 regex101.com 上测试:
解决方法
你可以使用
^(?P<Time>[^,]+)(?:,\s*(?P<Station>.+))?$
查看 regex demo(切换到单元测试,链接在左窗格中)。
详情:
-
^
- 字符串的开始 -
(?P<Time>[^,]+)
-Time
组:除逗号之外的任何一个或多个字符 -
(?:,\s*(?P<Station>.+))?
- 一个可选的序列-
,
- 逗号 -
\s*
- 零个或多个空格 -
(?P<Station>.+)
- 除换行符之外的一个或多个字符被捕获到“Station”组中
-
-
$
- 字符串结束。
单元测试截图: