用逗号或 space 匹配全名的正则表达式
Regex to match full name with comma or space
我正在使用 CommonMark,我创建了一个“@mention”解析器,当找到 @mention 时,它将 return 一个 link。但是,我将其调整为 link 全名而不是用户名。这是我目前拥有的:
$cursor->match('/^\w+,(.*)\s/');
但是,这似乎错误地捕获了名称,link是另一个名称的开头(见下文):
有人知道我可以更改什么以匹配用逗号分隔的整个名称 and/or space 吗?我不擅长写正则表达式。
提前感谢您的帮助!
编辑:
以下是应匹配的内容:
(名字最少2个字,最多3个字)
- 史蒂夫鲍曼
- 史蒂夫鲍曼
- 母鹿,玛丽苏
- 玛丽苏·多伊
带逗号的姓氏只能是一个单词。
不应该匹配的内容:
- 史蒂夫
- 鲍曼
- 玛丽
- 母鹿
正则表达式需要匹配整个名称,而不是单个名称。
这是 match
方法背后的 CommonMark 代码:
if (!preg_match($regex, $subject, $matches, PREG_OFFSET_CAPTURE)) {
return;
}
结果为:
if (!preg_match('/^\w+,(.*)\s/', "Bauman, Steve", $matches, PREG_OFFSET_CAPTURE)) {
return;
}
我正在使用 CommonMark,我创建了一个“@mention”解析器,当找到 @mention 时,它将 return 一个 link。但是,我将其调整为 link 全名而不是用户名。这是我目前拥有的:
$cursor->match('/^\w+,(.*)\s/');
但是,这似乎错误地捕获了名称,link是另一个名称的开头(见下文):
有人知道我可以更改什么以匹配用逗号分隔的整个名称 and/or space 吗?我不擅长写正则表达式。
提前感谢您的帮助!
编辑:
以下是应匹配的内容:
(名字最少2个字,最多3个字)
- 史蒂夫鲍曼
- 史蒂夫鲍曼
- 母鹿,玛丽苏
- 玛丽苏·多伊
带逗号的姓氏只能是一个单词。
不应该匹配的内容:
- 史蒂夫
- 鲍曼
- 玛丽
- 母鹿
正则表达式需要匹配整个名称,而不是单个名称。
这是 match
方法背后的 CommonMark 代码:
if (!preg_match($regex, $subject, $matches, PREG_OFFSET_CAPTURE)) {
return;
}
结果为:
if (!preg_match('/^\w+,(.*)\s/', "Bauman, Steve", $matches, PREG_OFFSET_CAPTURE)) {
return;
}