php - 有逗号就单独捕获,没有RegEx就整体捕获
问题描述
我不太习惯正则表达式 我想捕获 The Lastname, Firstname
if there a comma and capture it as a whole if Lastname Firstname
is provided。
例如,如果用户输入:
名称:
我只想捕获, *Lastname, Firstname
Lastname
Firstname*
姓名: Lastname Firstname
亦本。不包括名称:
这是我的正则表达式(到目前为止我已经尝试过):(([a-zA-Z]*),? ([a-zA-Z]*))
顺便说一句,我正在提取具有以下内容的 Excel 单元格中的数据:
Name: Lastname, Firstname
, 或者Name: Lastname Firstname
格式
解决方案
试试这个正则表达式,
它不区分大小写,如果 Lastname 和 Firstname 之间有逗号,则分别捕获它们,
如果没有逗号,则一起捕获
([^,\r\n]+)
输出:
您也可以在不使用任何类的情况下尝试它们,例如[^,\r\n]+
编辑:在评论中进行了一些讨论后,我想出了另一个正则表达式,它可以避免读取Name:
字符串
((?(?<=Name:)| )[^,\r\n]+)
输出:
告诉我它是否适合你...
推荐阅读
- html - 为什么 Apple 的本地邮件客户端会切断(不显示)HTML 的结尾?
- flutter - 如何在 Flutter Web App 中获取当前 URL
- python - 使用连续小波变换时不断收到类型错误
- php - 如何使用关系检查laravel中的数组中是否存在值
- python-3.x - 如何在odoo 11中配置员工合同到期提醒?
- multithreading - 在 CLR 中切换执行上下文,无需额外线程即可摆脱回调
- python - Tensorflow Object Detection Api TypeError: Expected binary or unicode string, got None
- amazon-web-services - 互联网网关后面的公共子网中的 EC2 无法连接到 ECR
- html - 定时显示(仅限 CSS) - 我们可以将持续时间作为 HTML 的一部分传递吗?
- linux - 我需要一个脚本来用所有文件中的新库替换旧库