正则表达式使用的注意事项

正则表达式使用的注意事项

下面是正则表达式常用的通配符,及注意事项
. - 除换行符以外的所有字符。*包含utf8汉字
^ - 字符串开头。
$ - 字符串结尾。
\d,\w,\s - 匹配数字、字符、空格。字符不含汉字。
\D,\W,\S - 匹配非数字、非字符、非空格。含汉字
[abc] - 匹配 a、b 或 c 中的一个字母。或单个汉字
[a-z] - 匹配 a 到 z 中的一个字母。或一个汉字
[^abc] - 匹配除了 a、b 或 c 中的其他字母。
aa|bb - 匹配 aa 或 bb。
? - 0 次或 1 次匹配。
\ * - 匹配 0 次或多次。
\ + - 匹配 1 次或多次。
{n} - 匹配 n次。
{n,} - 匹配 n次以上。
{m,n} - 最少 m 次,最多 n 次匹配。
(expr) - 捕获 expr 子模式,以 \1 使用它。
(?:expr) - 忽略捕获的子模式。
(?=expr) - 正向预查模式 expr。
(?!expr) - 负向预查模式 expr。
这是一段用正则表达式提取文本中年月日的例子,很好用

             Regex r;
            Match m;
            string patten1 = @"(\d{1,4})年(\d{1,2})月(\d{1,2})日";
            r = new Regex(patten1);
            m = r.Match(s0);          
            if (m.Success)
            {                
                s1 = m.Groups[1].Value + "-" + m.Groups[2].Value + "-" + m.Groups[3].Value;              
                dt0 = DateTime.Parse(s1);
            }
            else
            {
                r = new Regex(@"(\d{1,2})月(\d{1,2})日");
                m = r.Match(s0);
                if (m.Success)
                {
                    s0 = m.Groups[1].Value;
                    if (int.Parse(s0) > 9)
                        s1 = "2021";
                    else
                        s1 = "2022";
                    s1 = s1 + "-" + m.Groups[1] + "-" + m.Groups[2];
                    dt0 = DateTime.Parse(s1);
                }
            }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值