如何使用正则表达式来匹配没有任何字母,数字或特殊字符的单词?

时间:2016-07-29 12:12:16

标签: sql regex mariadb

我想使用正则表达式来过滤掉纯正的中文名称:

SELECT `name` FROM `table`  WHERE `name` REGEXP '[u4e00-u9fa5]';

但是,根据this,它是不可能的,所以我想从相反的方向接近,找到没有任何字母,数字和特殊字符的内容(我知道它不是僵硬的) ,但无法找到"和"运营商,那怎么办呢?

1 个答案:

答案 0 :(得分:2)

MariaDB使用从10.0.5版开始的 PCRE 正则表达式库:“Starting with MariaDB 10.0.5, MariaDB switched to the PCRE regular expression library for enhanced regular expressions.”。

要匹配包含中文字母的条目,请使用

private void assignmentfinder(string brief, string id)
{
    Regex rgxLines = new Regex(@"^(.*?)[ \t]+([0-9]{2}\/[0-9]{2}\/[0-9]{4})", RegexOptions.Multiline);
    MatchCollection mLines = rgxLines.Matches(brief);

    foreach (Match match in mLines)
    {
        richTextBox1.Text += String.Format("Test: {0}{1}Date: {2}{1}{1}", 
                                            match.Groups[1].Value, 
                                            Environment.NewLine, 
                                            match.Groups[2].Value);
    }
}

甚至

REGEXP '[\\x{4e00}-\\x{9fa5}]'

要匹配反向的条目,没有中文字母,请使用:

REGEXP '\\p{Han}'

REGEXP '^[^\\x{4e00}-\\x{9fa5}]*$'