我有一个程序,用户将在其中输入一个字符串,例如
PropertyA = "abc_*"
,我需要让星号匹配任何字符。
在我的代码中,我正在获取属性值并替换PropertyA
为实际值。例如,它可能是abc_123
. 我还将等式符号提取到变量中。
它应该能够涵盖此类标准
属性B = 'cba'
PropertyC != '*-this'
valueFromHeader
是左侧,value
是右侧。
if (equality.equals("=")) {
result = valueFromHeader.matches(value);
} else if (equality.equals("!=")) {
result = !valueFromHeader.matches(value);
}
编辑:
现有代码对正则表达式进行了这种替换
final String ESC = "\\$1";
final String NON_ALPHA = "([^A-Za-z0-9@])";
final String WILD = "*";
final String WILD_RE_TEMP = "@";
final String WILD_RE = ".*";
value = value.replace(WILD, WILD_RE_TEMP);
value = value.replaceAll(NON_ALPHA,ESC);
value = value.replace(WILD_RE_TEMP, WILD_RE);
它不喜欢这里的下划线...
abcSite_123 != abcSite_123 (evaluates to true)
abcSite_123$1.matches("abcSite$1123")
它不喜欢下划线...