javascript - 可选择在空格后匹配

标签 javascript regex

我正在寻找可以匹配这两行的正则表达式:

foo/bar
foo/bar baz

并将 foobarbaz 捕获到单独的匹配组中。

我尝试过这个正则表达式:

^([^\/]+)\/([^\/#]+)? (\w+)$

最佳答案

您可以使用下面的正则表达式

^(\w+)\/(\w+)\s*(\w+)?$
  1. ^:以 anchor 开头
  2. (\w+):匹配一个或多个单词字符(字母、数字和下划线)并将其添加到捕获组
  3. \/:匹配正斜杠
  4. \s*:匹配任意数量的空格
  5. (\w+)?:可选的字母数字+下划线匹配
  6. $:以 anchor 结尾

这是demo在 RegEx101.com 上。

这将匹配第一个捕获组中 / 之前的第一个单词,可以通过 $1 访问,第二组中 / 之后的单词 -$2$3 中的可选单词。

如果有除\w之外的其他字符,即[a-zA-Z0-9_],您可以使用下面的正则表达式

^([^\/]+)\/(\S+)\s*(\S+)?$

Demo

[^\/]+ 将匹配除 / 之外的一个或多个字符。 \S+ 将匹配一个或多个非空格字符。

关于javascript - 可选择在空格后匹配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42430147/

相关文章:

r - 如何为特定范围创建和插入带有分类变量的列

javascript - 查找链接并使其可点击

javascript - Angular 2滚动到顶部的路线更改不起作用

javascript - javascript 是否违背了强制 javascript 设计的 OO 编程的隐藏原则?

javascript - 如何在 Ajax 成功函数中获取脚本级变量?

regex - 使用 sed 转义特殊字符

python - 匹配字符串中所有工作日名称的正则表达式

java - 为什么这个正则表达式不起作用?

javascript - 错误 : bundling failed: Error: Unable to resolve module `react-native-vector-icons/Feather`

javascript - AngularJS TypeScript 单元测试