使用Regex重新排序以分号分隔的字符串内容?

2024-04-19 04:43:25 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个名称字符串,用分号分隔符分隔,格式为firstname lastname。你知道吗

John Doe; R.J. Smith; Peter T. Thompson; Sabine Geiß

如何将这些名称重新排序为“lastname,firstname”,最好使用RegEx?你知道吗

Doe, John; Smith, R.J.; Thompson, Peter T.; Geiß, Sabine

Tags: 字符串名称排序格式firstnamejohnregexpeter
2条回答

正则表达式是:

/\s?([\w.\s]+)\s([\w.]+);/g

这将匹配第一个和第二个单词,后跟;。你知道吗

要在(例如)JavaScript中实现所需的功能,请执行以下操作:

your_string.replace(/\s?([\w.\s]+)\s([\w.]+);/g, "$2, $1")

示例:

"John Doe; R.J. Smith; Peter T. Thompson; Sabine Geiß".replace(/\s?([\w.\s]+)\s([\w.]+);/g, " $2, $1;")
" Doe, John; Smith, R.J.; Thompson, Peter T.; Sabine Geiß"

假设不存在后缀(姓氏总是最后一个词),您应该(全局地)替换

\s*([^\s;]+(?:\s+[^\s;]+)*)\s+([^\s;]+)\s*(?:;|$)

$2, $1

相关问题 更多 >