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'
或'-'
匹配
相关问题
|
交替的模式。我还将第一个模式修改为使用\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