我有一些以 . 开头的字符串DD_filename。
如何在_使用正则表达式之前提取字符。
我尝试从这里学习使用,因为它给出的a.b将检索从开始a和结束的字符b
我也尝试过类似^._的方法,但它对我不起作用。
^._只会匹配之前的一个字符_。试试这个模式:
^.*?(?=_)
从字符串的开头开始,捕获所有非下划线字符:
"^[^_]*"
第一个^(插入符号)字符表示匹配从字符串的开头开始。括号允许您定义一组可能的字符(字符类)。第二个^字符的意思是“不是”。所以字符类是“非下划线”。星星的意思是“零或更多”。所以用简单的英语:“从字符串的开头匹配零个或多个非下划线字符”。
只需捕获所有不是下划线的字符:
"[^_]*"
查看@stema 的答案。他给出了四种方法来做到这一点,但第一种可能是最好的。
Match result = Regex.Match(text, @"^.*?(?=-)");
Console.WriteLine(result);