【发布时间】:2015-03-03 06:52:53
【问题描述】:
我正在使用http://www.regexr.com/ 和https://regex101.com/ 来学习正则表达式
regex101 的快速参考展示
条件语句: (?(...)|)
如果给定的模式匹配,匹配竖线之前的模式。否则,匹配竖线后的模式。
我根本无法让它工作
/(^(?!no)if|else)/gm
否如果否则
是,如果否则
好像坏了
/(?:(yes)true|false)/g
是真的假
我需要使用 string.match 返回一个匹配项,以便与第三方保持兼容。我没有选择自己对结果做任何事情,所以我不能做多个正则表达式,也不能用 javascript 过滤结果。我想要实现的是一个要求
如果句子以单词“name”开头或句子包含“.classX”,则不返回任何内容返回“.classA”
返回 [""] 或 [".classA "]
这有可能吗,还是我完全在浪费时间?
【问题讨论】:
-
好吧,你没有遵循语法。正如你所引用的,模式是
(?(test)true|false)。您要么在?(之间引入字符(例如(?:(,要么完全更改括号位置((?!no))。但是,我认为JS无论如何都不支持条件,所以没有必要走那条路。 -
/((?yes)true|false)/regex101 上的无效组结构错误 -
JavaScript 不支持正则表达式条件语句,如 Felix 所述。
-
@BenMuircroft:Fabrício 说的。但是,
((?yes)true|false)仍然不正确。如果有的话,应该是(?(yes)true|false)
标签: javascript regex