gpt4 book ai didi

javascript - 使用正则表达式在第一个字母处分割字符串

转载 作者:行者123 更新时间:2023-11-28 13:12:17 24 4
gpt4 key购买 nike

我有一个正则表达式,可以在第一个数字处分割字符串

var name = 'Achill Road Boy 1:30 Ayr'
var horsedata = name.match(/^(\D+)(.*)$/);
var horse = horsedata[1]; // "Achill Road Boy "
var meeting = horsedata[2]; // "1:30 Ayr"

但是,我现在需要进一步拆分

var meetingdata = meeting.match(?what is the regex);
var racetime = meetingdata[1]; // "1:30 "
var course = meetingdata[2]; // "Ayr"

在第一个字母处分割字符串的正则表达式是什么?

最佳答案

您可以使用单个正则表达式来执行此操作:

^([^\d]+) +(\d+):(\d+) (.*)$

它将分别捕获第 1、2、3 和 4 组中的名称、小时和分钟以及轨道名称。

请注意,我已将 ^ 和 $ 添加到表达式中,这意味着该表达式应该从头到尾完全匹配给定的字符串,我认为这对于防止匹配字符串中您最初不期望的内容是有用的保护措施。但是,它们可能会干扰您的任务,因此如果您不需要它们,可以将其删除。

当修改正则表达式时,我总是使用这个漂亮的工具,http://regex101.com - 它有一个非常有用的界面来调试正则表达式及其执行时间。这是上面正则表达式的链接:https://regex101.com/r/jYgc9K/1 。它还为您提供了此正则表达式的清晰分解:

Full match  0-24    `Achill Road Boy 1:30 Ayr`
Group 1. 0-15 `Achill Road Boy`
Group 2. 16-17 `1`
Group 3. 18-20 `30`
Group 4. 21-24 `Ayr`

最后,忠告:杰米·扎文斯基(Jamie Zawinski)有一句名言,他是一个非常聪明的人。事情是这样的:

Some people, when confronted with a problem, think "I know, I'll use regular expressions." Now they have two problems".

这句话有很多道理。

关于javascript - 使用正则表达式在第一个字母处分割字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41473838/

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