Javascript 匹配两个单词(小写和大写)之间空格的正则表达式是什么

Javascript 匹配两个单词(小写和大写)之间空格的正则表达式是什么,javascript,regex,google-sheets,Javascript,Regex,Google Sheets,我在google sheets中有一个数据集,“name”字段如下所示: Stephen & Sally Fitzpatrick 我试图找出正则表达式,以找到“Sally Fitzpatrick”之间的空格,这样我就可以将其拆分为姓名和姓氏。这样,斯蒂芬和萨利将保留在“姓名”字段中,菲茨帕特里克将成为姓氏 但问题的范围只是找到那个空间,而不是分割它 我相信这是一个相当新的编译器,所以\s、\b、\w是受支持的。您可能正在寻找类似于/(\s+\s\&s\s+)(\s+/的东西 分解如下:

我在google sheets中有一个数据集,“name”字段如下所示:

Stephen & Sally Fitzpatrick
我试图找出正则表达式,以找到“Sally Fitzpatrick”之间的空格,这样我就可以将其拆分为姓名和姓氏。这样,斯蒂芬和萨利将保留在“姓名”字段中,菲茨帕特里克将成为姓氏

但问题的范围只是找到那个空间,而不是分割它


我相信这是一个相当新的编译器,所以\s、\b、\w是受支持的。

您可能正在寻找类似于
/(\s+\s\&s\s+)(\s+/
的东西

分解如下:

  • 抓取第一个字符串、空格、符号和空格以及第二个字符串,并将所有这些字符串分组为第一组
  • 在代码<莎丽> <代码>和<代码>菲茨帕特里克< /代码>之间,并将其视为组
  • 自己抓取第三个字符串,并将其视为一组
这可以从以下几点看出:

let string='Stephen&Sally Fitzpatrick';

console.log(string.split(/(\S+\S\&S\S+)(\S+/).filter(布尔))使用lookarounds的一种可能的解决方案:

/(?<=[A-Za-z])\s(?=[A-Za-z])/.exec('Stephen & Sally Fitzpatrick')

// -> [" ", index: 15, input: "Stephen & Sally Fitzpatrick", groups: undefined]
/(?[”,索引:15,输入:“Stephen&Sally Fitzpatrick”,组:未定义]

const[first,last]='Stephen&Sally Fitzpatrick'。拆分(/(?匹配名称不是一件小事,因为您正在考虑的名称组合要多得多。我猜您的想法类似于
[a-z][a-z]
,但是当你第一次遇到冯·布劳恩的时候,你会崩溃的。
是的,很好的观点@MattBurlandAs Matt说,解析名字字符串并不简单,有很多不同的形式。Sally Ann、Sarah Jane和Sue Saxe Coburg和Gotha呢?;-)谢谢。就是这样!