首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >匹配"--word“和"--no-word”,但不匹配“-word”

匹配"--word“和"--no-word”,但不匹配“-word”
EN

Stack Overflow用户
提问于 2018-04-21 09:31:03
回答 4查看 53关注 0票数 0

我有以下RegExp:

代码语言:javascript
复制
^--([\w|-]+)

我想要匹配的

代码语言:javascript
复制
--word
--no-word

但不是:

代码语言:javascript
复制
---word
----word
EN

回答 4

Stack Overflow用户

发布于 2018-04-21 09:33:54

将表达式更改为

代码语言:javascript
复制
^--(\w[-\w]*)

这要求两个短划线后至少有一个单词字符,请参见。

请注意,character类本身已经形成了一个替代,所以除非您还想在字符串中的某处允许|,否则不需要在类中使用它。

票数 5
EN

Stack Overflow用户

发布于 2018-04-21 20:30:39

解决方案

会有所帮助,但是您也应该删除|,因为[...]中的这个符号不是一个交替运算符,而是一个常规的管道符号:

代码语言:javascript
复制
^--\b([\w-]+)

演示

请参阅regex demo

详细信息

演示

代码语言:javascript
复制
var strs = ["--word", "--no-word", "---word", "----word"];
var rx = /^--\b([\w-]+)/;
for (var s of strs) {
  console.log(s, "=>", rx.test(s));
}

票数 1
EN

Stack Overflow用户

发布于 2018-04-21 09:35:32

这在这里有效,我正在检查两个单词字符子句之间的连字符选项。

代码语言:javascript
复制
^--(\w+[-]?\w+)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49951538

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档