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