如何解决正则表达式,如何在不排除第一行的情况下将字符串分为两组
我尝试使用 (?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”组中
-
-
$
- 字符串结束。
单元测试截图:
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。