C# 正则表达式删除开头的数字和-

C# 正则表达式删除开头的数字和-,c#,regex,string,C#,Regex,String,我正在处理一个字符串列表,但是我想修改字符串,这样用户就不会觉得它们难看了。一个例子是 2736162 Magazines 23-2311 Numbers 1-38122 Faces 5-231123 Newspapers 31-31235 Armynews 33-12331 Celebrities 1 33-22113 Celebrities 2 Cars Glasses 我想要的是删去开头,这样就省去了丑陋的数字和“-”序列,用户只看到有意义的数据,比如: Magazines Number

我正在处理一个字符串列表,但是我想修改字符串,这样用户就不会觉得它们难看了。一个例子是

2736162 Magazines
23-2311 Numbers
1-38122 Faces
5-231123 Newspapers
31-31235 Armynews
33-12331 Celebrities 1
33-22113 Celebrities 2
Cars
Glasses
我想要的是删去开头,这样就省去了丑陋的数字和“-”序列,用户只看到有意义的数据,比如:

Magazines
Numbers
Faces
Newspapers
Armynews
Celebrities 1
Celebrities 2
Cars
Glasses
如何用正则表达式删除开头的数字/-

编辑 是否可以设计相同的正则表达式,以便从以下内容中删除这些值:

FFKKA9101U- Aquatic Environmental Chemistry
FLVKB0381U- Clinical Drug Development
4761-F-Filosofisk kulturkritik
B22-1U-Dynamic biochemistry
致:


我想的规则是,如果a前面只有大写字母、数字和-或+符号,那么它对机器来说是有意义的,并且不是一个实际的单词,因此应该去掉,但是我不知道如何在正则表达式中表达它。

看起来您可以匹配和替换
^[\d-]*\s*
,使用空字符串

[…]
是一个。类似于
[aeiou]
的内容匹配任何一个小写元音
\d
是digital character类的缩写,因此
[\d-]
匹配数字或破折号。
\s
是空白字符类的缩写

^
是最新版本。
*
为“零或更多”

因此,模式在行首匹配一系列数字或破折号,然后是一系列空格

问题还不清楚,但是如果输入是多行文本(而不是一次应用一行正则表达式),那么您还需要启用


C#代码段 下面是C#中的一个示例片段:

输出为():

根据风格,您可能必须将多行模式指定为
/m
标志(或
(?m)
嵌入)。如果将模式表示为字符串文字,则可能还需要将反斜杠加倍,例如,在Java中,可以使用
text.replaceAll((?m)^[\\d-]*\\s*,“”)


关于在字符类中包含破折号的特别说明 将
-
包含在
[…]
字符类中时一定要小心,因为它可以表示范围而不是文本
-
字符。类似于
[a-z]
的内容与小写字母匹配。类似于
[az-]
的内容与
'a'
'z'
'-'
匹配

相关问题

如果每一行上都有数字(带或不带-),您可以在空格上拆分该行,排除第一个部分,然后再次合并。

这是什么味道?如果您在正则表达式问题上指定哪种口味,通常会得到更好的答案。@polygene-flavor?:DC#regex不同于Java regex不同于javacscript regex等。换句话说,我想问您将在什么编程语言/工具上下文中使用这个regex@Polygene润滑油+@ApoY2k-谢谢你的解释-这是C#非常感谢!如果你喜欢,请看一下我的编辑,我知道你已经回答了这个问题,所以你可以让我窃取你更多的专业知识。试着看一下:它是最新的字符串,但不是在前面有数字的字符串name@Jakob:现在你有两种不同的模式,所以你可以选择“或”使用与
|
交替的模式。我还将第一个模式修改为使用
\s+
而不是
\s*
。这似乎适用于你当前的测试:我在我的百科全书中查找了它——你刚才做了什么;这是真棒的定义!谢谢:D
Aquatic Environmental Chemistry
Clinical Drug Development
Filosofisk kulturkritik
Dynamic biochemistry
var text = @"
2736162 Magazines
23-2311 Numbers
1-38122 Faces
5-231123 Newspapers
31-31235 Armynews
33-12331 Celebrities 1
33-22113 Celebrities 2
Cars
Glasses
";

Console.WriteLine(
  Regex.Replace(
     text,
     @"^[\d-]*\s*",
     "",
     RegexOptions.Multiline
  )
);
Magazines
Numbers
Faces
Newspapers
Armynews
Celebrities 1
Celebrities 2
Cars
Glasses