javascript - 拆分 'VS Teamnames' 字符串的正则表达式

标签 javascript regex

我从 YouTube 中抓取了标题视频。我已将其简化为类似于这些的字符串:

string1 = "Red~VS~Blue";
string2 = "oRange v wHite";
string3 = "black knights verses purple people";

team0 = string.split(regexp)[0];
team1 = string.split(regexp)[1];

我正在尝试使用 Javascript 的 string.split 方法将每个字符串分解为两个团队名称的数组。空格或定界符是否通过并不重要,因为它们可以在以后轻松清理。我还希望正则表达式具有一些基本的拼写错误捕捉功能。

正则表达式:

regexp = /\Wv(s|\W)/i; \\Should match " v " or " vs", gives 3 results instead of 2
regexp = /\Wv[s\W]/i; \\Works as I thought the above should 
regexp = /\W(vs|v\W|vers[eu]s)/i \\attempt at dealing with typos, doesn't work

当我添加更多括号 () 而不是包含我所写的内容时,它往往会向拆分添加额外的结果。我已经阅读了这些关于正则表达式的教程 herehere以及关于 stackoverflow 的一些答案但我找不到任何相关的东西来帮助我。我该如何解决这个问题?

最佳答案

result = subject.split(/\W+v(?:ers[ue])?s?\W+/i);

正确拆分所有示例字符串。

解释:

\W+        # Match one or more non-word characters
v          # Match v
(?:        # followed by
 ers[ue]   # ersu or erse
)?         # (optionally)
s?         # followed by s (optionally)
\W+        # Match one or more non-word characters

不过,这也匹配 versuverse

关于javascript - 拆分 'VS Teamnames' 字符串的正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12454956/

相关文章:

除 .hg_keep 之外的所有文件的正则表达式

JavaScript;正则表达式并排只有 5 位数字的字符串

javascript - 从多个页面获取html内容并写入新页面

regex - 我如何使用 RegEx 将非 www 重定向到 www,一个 SSL 子域除外?

Python 重复捕获组

javascript - 将 <li> 文本转换为可点击的链接

javascript - 正则表达式末尾的/i 是什么意思?

javascript - 在谷歌表格中,您可以将字符串拆分为子字符串,对子字符串执行计算并将结果连接到不同的单元格中吗

php - 简单的 JavaScript 跟踪脚本

javascript - 更新状态中子节点中的值