Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/scala/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 需要更好的正则表达式来匹配文本_Javascript_Regex_Performance - Fatal编程技术网

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

Javascript 需要更好的正则表达式来匹配文本,javascript,regex,performance,Javascript,Regex,Performance,我的要求是找到方法被调用方的错误使用模式,因为我希望有一个正则表达式可以找到无效用例 我有一个方法,它将接受预定义格式的参数 可能的预定义输入参数: abc 英国广播公司 abc英国广播公司 德 德abc 函数:函数方法(参数){} 有效的函数被调用方用例: 对象、方法(“abc”)或对象方法('abc') 对象、方法(“bbc”)或对象方法('bbc') 对象。方法(“abc-bbc”)或object.method('abc-bbc') 对象、方法(“der”)或对象方法('der') 对象、

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

我有一个方法,它将接受预定义格式的参数

可能的预定义输入参数:

  • abc
  • 英国广播公司
  • abc英国广播公司
  • 德abc
  • 函数:函数方法(参数){}

    有效的函数被调用方用例:

  • 对象、方法(“abc”)对象方法('abc')
  • 对象、方法(“bbc”)对象方法('bbc')
  • 对象。方法(“abc-bbc”)object.method('abc-bbc')
  • 对象、方法(“der”)对象方法('der')
  • 对象、方法(“abc法”)object.method('derabc') 无效用例:

  • 对象。方法(“abcd”)
  • 对象、方法(“试验”)
  • 对象、方法(“abc”)
  • 对象。方法(“abc-bbc”) 为了识别无效用例,我提供了以下正则表达式: 参考:[RegEx]()


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

    如果您有一个有效输入的封闭列表,我只需检查输入是否与其中一个一致,例如,只需搜索一组选项即可

    如果不是这样的话,您应该为我们提供一个更好的解释,说明所需的输入格式。

    我随附

    .(method)\s*\((?![\"\'](abc|bbc|abc bbc|der|der abc)[\"\'])
    
    所以我刚从这个(x | x | x)组中“移动”和“移动”,以使事情更清楚
    此外--您可以添加/g修饰符进行测试,并将所有数据放入文本框。

    这里是链接:

    为什么要使用regex开始?@Nit:我们从一个日志中按照这种方式进行操作,我无法改变这种方法。因此,遵循它。感谢您的快速帮助。顺便说一句,如果您从
    (方法)
    中删除捕获,您可以进一步提高性能。另外,我想您需要匹配一个文字点,将其转义(
    \。
    )我建议
    \.方法*(?![“”)(abc | bbc | abc | bbc | abc | der | der abc)[“]”)
    @Stribizev:我没有注意到\.部分,感谢您的通知和[]部分。至于捕获(方法),我们需要突出显示错误的权利?(不需要捕获?)@user3620283:使用“方法”捕获,正则表达式的计算分为520、64、72、76步。如果不使用,它的计算分为390、48、56、60步。您不需要突出显示组,您可以突出显示整个匹配项。我很怀疑,
    \.setDisplayFormat\s*(?!\s*[“')之间的区别是什么(shortdate | shortdate shorttime | shortdate longtime | longdate shortime | longdate longtime | longtime | shortime | shortime | longdate longtime | longtime | shortime | longdate | longdate | longtime | longdate | longtime | longtime | shortime | shortime | shortime | shortime