作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我要抓字ferrari
、ferry
和 ferret
。
正则表达式很容易是:
/ferr(ari|y|et)/
但是,我注意到一个模式:当您想捕获单个 单词的多个备选方案时,您可以使用方括号[wordsToCapture]
。例如,我想捕捉单词:vowel a
、vowel e
、vowel u
、vowel o
, 元音 i
.
正则表达式可以是:vowel [aeiou]
,它比 vowel (a|e|i|o|u)
噪音小
所以我尝试使用方括号来捕捉分组词的多种选择。但是,[...]
(方括号)使我的捕获组((...)
圆括号)变得无用,这意味着如果我使用此正则表达式 ferr[(ari)(y)(et)]
,它将匹配:ferr(
, ferra
, ferrr
, ferri
,并且该列表针对方括号中出现的每个一个字符继续。
有没有办法让方括号内的捕获组括号保留其特殊含义,从而使我的 RegExp 更简洁?还是有其他方法让它更简洁?
最佳答案
否 - 方括号表示字符集。如果你想匹配多组字母,你需要使用你之前使用的符号。
/ferr(ari|y|et)/
关于javascript - Terser RegExp 捕捉分组词的备选集合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56590955/
我是一名优秀的程序员,十分优秀!