Regex ESAPI验证不接受特定的正则表达式

Regex ESAPI验证不接受特定的正则表达式,regex,owasp,esapi,Regex,Owasp,Esapi,我想验证带有字母数字字符、方括号和hypen的输入字符串,例如[Z01-Z02],为此,我将验证属性设置为 Validator.SqBrackText=^[0-9a-zA-Z \[\]\-]{1,111}$ 但是ESAPI.validator().getValidInput(上下文,输入,“SqBrackText”,maxLen,allowNull,true) 给出例外情况,如 java.lang.IllegalArgumentException: The selected type [SqB

我想验证带有字母数字字符、方括号和hypen的输入字符串,例如
[Z01-Z02]
,为此,我将验证属性设置为

Validator.SqBrackText=^[0-9a-zA-Z \[\]\-]{1,111}$
但是ESAPI.validator().getValidInput(上下文,输入,“SqBrackText”,maxLen,allowNull,true)

给出例外情况,如

java.lang.IllegalArgumentException: The selected type [SqBrackText] was not set via the ESAPI validation configuration
        at org.owasp.esapi.reference.DefaultValidator.getValidInput(DefaultValidator.java:215)
显然,ESAPI不接受validation属性,尽管regExTester接受该规则。 同一个文件中还有其他ESAPI可以接受的验证属性规则

有人能提出这其中可能存在的错误或缺失吗


谢谢

我们得到了解决方案-需要给2个反斜杠来转义
[]-
字符

所以使用了这个正则表达式,它工作正常

  Validator.SqBrackText=^[0-9a-zA-Z \\[\\]\\-]{1,1024}$

谢谢你的帮助

我不认为它解决了您的问题,但让我建议您对regex进行改进:^[[0-9a-zA-Z]+-[0-9a-zA-Z]+]$basicali,如果您了解上下文,缩小范围总是一个好主意,以避免匹配不需要的输入。你的:,我的:你把正则表达式指定为非字符串,这可能是问题吗?如果你使用的是字符串,你做过转义吗?因为regex有像刀砍一样的罪恶。它们需要在Java中转义。我不熟悉Java如何解析属性。属性中的^$或{}可能有问题。因为Basicali java说没有属性。