在Javascript中使用正则表达式检查模式

JS学习者

我正在尝试使用正则表达式检查字符串中的模式。我的要求是

  1. 字符串应始终以%或(
  2. 紧随其后的%是一个数字,反之亦然,任何数字之前都应%始终
  3. 字符串只能包含以下字符和单词% ( ) and or数字值

Valid string (%1 and %2 or %3)

Invalid %%1

我尝试了以下

regex ^[%(]+[%0-9]+[(]

请帮忙

东沃尔夫

这应该做到这一点:

^(?:\(|%[0-9]+)(?:\s+|%[0-9]+|and|or|\(|\))*$

从一个开括号或一个百分比开始,然后是一系列数字,然后继续允许空格或一个百分比,后跟一系列数字任意次数。如果您提供一个更具体的示例来说明您要匹配的内容,我可以更具体地说明

在此处输入图片说明

这不会强制匹配括号。您需要一个递归js函数

编辑

好了,这是一个更具体的函数,用于说明分隔符之间的间距和数量

^(?:\(|%[0-9])(?:\sand\s|\sor\s|\(+)(?:(?:%[0-9]|\)+)(?:\s(?:and|or)\s(?:%[0-9]|(?:\(\s?)+))?)*\s?\)*$

这将匹配以下内容:%3和%4或(%2或%3),但在您尝试使用它时将失败:%3和%4or(%2或%3)请注意%4和或者

同样,不需要关闭方括号,因此它可以匹配:%3和%4或(%2或%3,它也可以匹配:%3和%4或(%2或%3)))

它可以处理像这样的立即嵌套的括号:%3和%4或(((%2或%3)和%9)

我确定我错过了案件,请让我知道您遇到了哪些问题

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

我们可以在Java中使用正则表达式检查多种模式吗?

在模式匹配正则表达式中使用“或”

在grep的正则表达式模式中使用OR

在gsub r中使用正则表达式模式

在正则表达式模式匹配中使用枚举

在熊猫中使用正则表达式的多种模式

在python中使用正则表达式排除模式

在JS中使用正则表达式检查dateformat

在jquery中使用正则表达式检查hasClass

使用Javascript正则表达式检查数字模式

是否可以在给javascript正则表达式中的前瞻表达式指定的模式中使用捕获组?

在JavaScript中使用动态(可变)字符串作为正则表达式模式

正则表达式模式无法正常运行..只能在Extjs / Javascript中使用

在JavaScript中使用正则表达式检查日期并根据给定类型进行转换

使用正则表达式检查Javascript中的密码

使用OR的正则表达式模式

在 JavaScript 中使用正则表达式替换

在javascript中使用正则表达式删除&字符

如何在Javascript正则表达式中使用{{}}

需要在 Javascript 中使用正则表达式

Javascript在匹配正则表达式中使用变量

在javascript中的正则表达式中使用变量

在javascript中使用exec()与正则表达式

正则表达式模式可在javascript中使用,但在Scala中使用PatternSyntaxException失败:未封闭的字符类

检查正则表达式模式匹配是否失败

检查多个正则表达式模式

我可以在 JSON 模式模式(正则表达式)中使用 unicode 标志吗?

正则表达式使用Javascript

JavaScript正则表达式没有\ p {L}吗?在JS正则表达式中使用Unicode