首页 > 解决方案 > 有逗号就单独捕获,没有RegEx就整体捕获

问题描述

我不太习惯正则表达式 我想捕获 The Lastname, Firstnameif there a comma and capture it as a whole if Lastname Firstnameis provided。

例如,如果用户输入:

名称: 我只想捕获, *Lastname, Firstname
LastnameFirstname*

姓名: Lastname Firstname 亦本。不包括名称:

这是我的正则表达式(到目前为止我已经尝试过):(([a-zA-Z]*),? ([a-zA-Z]*))

顺便说一句,我正在提取具有以下内容的 Excel 单元格中的数据:

标签: phpregex

解决方案


试试这个正则表达式,

它不区分大小写,如果 Lastname 和 Firstname 之间有逗号,则分别捕获它们,

如果没有逗号,则一起捕获

([^,\r\n]+)

输出:

图片

正则表达式 101 演示

您也可以在不使用任何类的情况下尝试它们,例如[^,\r\n]+

编辑:在评论中进行了一些讨论后,我想出了另一个正则表达式,它可以避免读取Name:字符串

((?(?<=Name:)| )[^,\r\n]+)

输出:

图2

第二个正则表达式演示

告诉我它是否适合你...


推荐阅读