我有以下正则表达式,但无效:
@"^[a-z]{1}[a-z0-9\-_(%i)]*$"
允许用户使用%i
,但仅限于此组合。仅允许%
。括号中的表达式不起作用。
用户输入可以是例如:
但这是不允许的:
答案 0 :(得分:3)
字符类仅匹配1个单个字符。如果要将%i
作为序列进行匹配,则需要将%i
从字符类中删除:
^[a-z](?:[a-z0-9_-]|%i)*$
请参阅regex demo
<强>详情:
^
- 字符串的开头[a-z]
- 一个较小的ASCII字母(?:[a-z0-9_-]|%i)*
- 零次或多次出现:
[a-z0-9_-]
- 小写ASCII字母,数字,_
或-
|
- 或%i
- 文字字符序列%i
$
- 字符串结束。答案 1 :(得分:1)
string pattern = @&#34; \ b(?!(?:。\ B)(。)(?:\ B。) \ 1)[%i] + \ b& #34 ;;
string input = "testing123%i";
if (Regex.IsMatch(input, pattern))
{
return true;
}