需要一个更好的正则表达式来匹配文本

时间:2015-03-10 09:20:30

标签: javascript regex performance

我的要求是找到方法被调用者的错误使用模式,因为我想要一个可以找到无效用例的正则表达式。

Ex:我有一个方法,它会接受一个预定义格式的参数。

可能的预定义输入参数:

  1. abc
  2. bbc
  3. abc bbc
  4. DER
  5. der abc
  6. 功能:功能方法(参数){}

    有效函数被调用者用例:

    1. 的object.method(" ABC&#34); object.method(' abc');
    2. 的object.method(" BBC&#34); object.method(' bbc');
    3. object.method(" abc bbc"); object.method(' abc bbc');
    4. 的object.method(" DER&#34); object.method(' der');
    5. object.method(" der abc"); object.method(' der abc');
    6. 无效的用例:

      1. 的object.method(" ABCD&#34);
      2. 的object.method("测试&#34);
      3. object.method(" abc");
      4. object.method(" abc bbc");
      5. 为了识别无效的用例,我使用了下面的正则表达式: 参考:[RegEx](https://regex101.com/r/fR5eF4/3

        是否可以进一步优化上述正则表达式(或)具有更好性能的任何其他表达式。

2 个答案:

答案 0 :(得分:0)

如果您有一个有效输入的闭合列表,我只会检查输入是否与其中一个输入重合,例如,只需搜索一组选项。

如果不是这种情况,您应该向我们提供所需输入格式的更好解释。

答案 1 :(得分:0)

我来了

.(method)\s*\((?![\"\'](abc|bbc|abc bbc|der|der abc)[\"\'])

所以我刚刚从这个(x | x | x)组中移出'和',以使事情更清晰 另外 - 您可以添加/ g修饰符进行测试,并将所有数据放入文本框中 这是链接:https://regex101.com/r/oT4nN3/1