我有一些大量的字符串,它们以DD_filename
开头。
如何使用正则表达式在_
之前提取字符。
我尝试使用from here进行学习,并且{@ 1}}将从a.b
开始并以a
我尝试过类似b
,但它对我不起作用。
答案 0 :(得分:4)
从字符串的开头开始,捕获所有非下划线字符:
"^[^_]*"
第一个^
(插入符号)字符表示匹配从字符串的开头开始。括号允许您定义一组可能的字符(字符类)。第二个^
字符表示“不”。所以角色类是“不是下划线”。这颗恒星意味着“零或更多”。所以用简单的英语:“从字符串的开头匹配零个或多个非下划线字符”。
答案 1 :(得分:3)
您可以尝试类似
的内容.*?(?=_)
.
匹配任何字符,*?
是reluctant quantifier。 (?=_)
为positive lookahead,以确保我们的匹配后跟_
。
如果您只想提取字符串的开头中出现的字符,可以添加^
锚:^.*?(?=_)
。 ^
匹配字符串中第一个字符前的位置。
答案 2 :(得分:3)
^._
只会匹配_
之前的一个字符。试试这个模式:
^.*?(?=_)
答案 3 :(得分:2)
只捕获不是下划线的所有字符:
"[^_]*"
答案 4 :(得分:2)
Regular Expression to get all characters before "-"
查看@ stema的答案。他提供了四种方法来做到这一点,但第一种可能是最好的。
Match result = Regex.Match(text, @"^.*?(?=-)");
Console.WriteLine(result);