【发布时间】:2016-08-01 16:59:59
【问题描述】:
我正在尝试组合一个正则表达式模式,该模式匹配包含单词“front”但不包含单词“square”的字符串。我可以单独完成此任务,但无法将它们组合在一起。
前面=是
^((?=front).)*$
方=否
^((?!square).)*$
但是,如何将它们组合成单个正则表达式?
【问题讨论】:
标签: javascript regex
我正在尝试组合一个正则表达式模式,该模式匹配包含单词“front”但不包含单词“square”的字符串。我可以单独完成此任务,但无法将它们组合在一起。
前面=是
^((?=front).)*$
方=否
^((?!square).)*$
但是,如何将它们组合成单个正则表达式?
【问题讨论】:
标签: javascript regex
您可以为此只使用一个否定的前瞻:
/^(?!.*square).*front/
正则表达式详细信息:
^:开始square 出现在从起始位置开始的输入中的任何位置,(?!.*square) 是否定先行断言失败.*front 将匹配 front 输入中的任何位置【讨论】:
if it DID contain them both, in any order 然后使用 /^(?=.*square)(?=.*front)/
/^(?!.*square)front/
您可以使用前瞻断言来表达逻辑与:
最终的模式如下所示:
^(?=.*?front)(?!.*square)
【讨论】: