我需要检查过滤器表达式的有效性
例如用户输入textBox表达式“F117 AND F118”。这是正确的!但.. 用户可以输入不正确的表达式。例如:“F117 F118”,“F117,F118”等
只有正确的语法“asd”或“asd AND asgdfg”
如果表达式无效/正确,则应显示异常
请告诉我如何使用正则表达式
答案 0 :(得分:1)
你的问题不是特别明确,但你会想要这样的事情:
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.
答案 1 :(得分:1)
试试这个正则表达式:
/^[a-z0-9]+(( AND [a-z0-9]+)+)?$/i
答案 2 :(得分:0)
答案 3 :(得分:0)
我不知道这是不是你想要的,但这就是我想出来的。
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