Javascript 匹配两个单词(小写和大写)之间空格的正则表达式是什么
我在google sheets中有一个数据集,“name”字段如下所示: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+/的东西 分解如下:
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呢?;-)谢谢。就是这样!