gpt4 book ai didi

javascript - 使用 Javascript 的正则表达式从字符串中提取中间名和姓氏

转载 作者:行者123 更新时间:2023-12-03 07:04:50 24 4
gpt4 key购买 nike

我需要提取中间名和姓氏

Elev: 7EBB49 (Dan Greg Järgenstedt <dan.greg.smith@manu.al.edu>)
Expected: Greg Järgenstedt

Elev: 6EBB49 (Dan Järgenstedt <dan.greg.smith@manu.al.edu>)
Expected: Järgenstedt

Elev: 6EBB49 (Järgenstedt <dan.greg.smith@manu.al.edu>)
Expected: Järgenstedt

Elev: 6EBB49 (<dan.greg.smith@manu.al.edu>)
Expected:

尝试过

function getSNames(input) {
const names = input.match(/(?<!\[)(?<=\s)\w+(?=\s)/g);
return names ? names.join(' ') : '';
}

最佳答案

你可以使用

const names = input.match(/(?<!\(\p{L}+\s+|\p{L})\p{L}+(?:\s+\p{L}+)*(?=\s*<)/gu)

参见 regex demo . u标志启用 Unicode 类别类。

图案细节

  • (?<!\(\p{L}+\s+|\p{L}) - 紧靠左边,不可能有 (后跟 1+ 个字母,然后是一个或多个空格,或者只是一个字母(这用作 Unicode 单词边界)
  • \p{L}+ - 一个或多个字母
  • (?:\s+\p{L}+)* - 零次或多次出现 1+ 个空格,然后是 1+ 个字母
  • (?=\s*<) - 紧靠右边,必须有 0+ 个空格,然后是 < .

关于javascript - 使用 Javascript 的正则表达式从字符串中提取中间名和姓氏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64555618/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com