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

时间:2013-07-22 18:02:57

标签: python regex parsing

我有一个由分号分隔符分隔的字符串,格式为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

2 个答案:

答案 0 :(得分: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ß"

答案 1 :(得分:1)

假设没有后缀(姓氏总是只是最后一个字),你(全局)替换

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

$2, $1