regex 使用C#正则表达式拆分字符串

yvfmudvl  于 2022-12-01  发布在  C#
关注(0)|答案(1)|浏览(165)

我只是不知道如何获得适合我的特定需求的正确RegEx模式。
给定格式为“CON-ABC Industries Ltd-13098.pdf”的文件名

  • “CON-”是一个常量表达式-我匹配的文件名将始终以此开头
  • 两个“-”字符之间的字符串是公司名称-示例中为“ABC Industries Ltd
  • 第二个“-”字符后面的整数是合同编号-示例中为13098
  • 文件扩展名可以是许多不同的类型-我不在乎文件类型是什么

我想我已经接近获得公司名称与此:
字符串模式= @"-(.*?)-";
这将返回“-ABC Industries Ltd-”,但我无法找出如何删除连字符-我可以稍后在C#中对其进行操作,但更希望在正则表达式中得到正确的结果。
至于合同编号,在给定的示例中是这样的:
字符串模式=“[0-9]+";
它正确地返回“13098”,但是如果Company name包含数字,它就不起作用了--我需要告诉它使用整数的最后一次出现,就在文件扩展名的点之前。
任何帮助都是非常感谢的。请不要只是告诉我走开去读文档-我一直在倾注在https://learn.microsoft.com/en-us/dotnet/standard/base-types/regular-expression-language-quick-reference的指南,这就是我如何设法得到我有,但现在我需要一些帮助,请。

oxf4rvwz

oxf4rvwz1#

网上有很多很好的资源可以实时整理regex问题,我个人很喜欢https://regexr.com/
使用它和您的示例文本,我构建了这个,它确实与您的文件名匹配。

^CON-([^-]+)-.*$

组是您关心的内容。公司名称位于Group[1]. Value中。
组[0]是整个表达式的匹配。组[1]是括号中的第一部分。这可能很棘手,因此无数的在线资源试图使其更容易。
希望这对你有帮助。

相关问题