正则表达式,用于接受字母数字和带有特殊字符,但不能单独包含特殊字符

时间:2019-12-23 14:49:35

标签: regex

因此,我需要应用一些正则表达式来检查输入的文本是否为字母数字和可能的特殊字符,例如撇号,但不应接受没有字母数字字符的特殊字符。

例如:

  • “某人的事”返回5条结果
  • “(')”返回“无效”

我目前有:

var regexItem = new Regex("^[a-zA-Z0-9 ]*$");

            if (!regexItem.IsMatch(searchTerm))
            {
                return null;
            }

适用于字母数字值,并仅使用特殊字符阻止输入,但是如果搜索词中存在撇号,则它将返回null。

这可能吗?

更新:

新代码如下。

var regexItem = new Regex("^(?=[^a-zA-Z0-9]*[A-Za-z0-9])[a-zA-Z0-9 '()]* $");

            if (!regexItem.IsMatch(searchTerm))
            {
                return null;
            }

1 个答案:

答案 0 :(得分:1)

您必须使用
[原样]
var regexItem = new Regex("^[a-zA-Z0-9 ]*$");
[准]
var regexItem = new Regex("^([a-zA-Z0-9 ]+(')?[a-zA-Z0-9 ]*)*$");