我需要检查过滤器表达式的有效性
例如,用户输入文本框表达式“F117 AND F118”。这将是正确的!但是.. 用户可以输入不正确的表达式。例如:“F117 F118”、“F117,F118”等
正确的语法只有“asd”或“asd AND asgdfg”
如果表达式无效/正确,则应显示异常
请告诉我如何用正则表达式做到这一点
你的问题不是很具体,但你会想要这样的东西:
Regex r = new Regex(@"^\w+( AND \w+)*$", RegexOptions.IgnoreCase);
if(!r.IsMatch(input))
{
throw new ArgumentOutOfRangeException();
}
意义:
^ #Start of string.
\w+ #Some word characters.
( AND \w+) #A group containing the word AND followed by some word characters.
* #That previous group can repeat zero or more times.
$ #End of string.
试试这个正则表达式:
/^[a-z0-9]+(( AND [a-z0-9]+)+)?$/i
我不知道这是否是你想要的,但这就是我想出的。
var s = "f123 AND f234";
if(/^([a-z A-Z]{1}[0-9]+)$|(([a-z A-Z]{1}[0-9]+) AND ([a-z A-Z]{1}[0-9]+))$/.test(s))
alert("Eurica!");
测试方法根据正则表达式检查您传递的字符串是否正确。
^: starts with
a-z A-Z : small letters and capital letters i.e A or a ...
0-9: digits
+: 1 or more ... so till now we have f123 or F12345 or F133453
|: or
$: ends with