简体   繁体   English

正则表达式。 删除破折号。

[英]Regular Expression. remove dashes.

I have a large array of names.我有一大堆名字。 The software names them really long and doesn't have a way to override it.该软件将它们命名为很长并且无法覆盖它。 I want to just get out the file name I need.我只想取出我需要的文件名。 I've been using regex because it feels like it should be able to get just this part of the string.我一直在使用正则表达式,因为感觉它应该能够获得字符串的这一部分。 Any help would be great I've spent a day with no luck.任何帮助都会很棒我花了一天没有运气。

Here is the output.这是输出。

UCM - S - Loading 1H_lester.virata.sfw811 - Sheet - 1H-S11-00 - LEVEL 01 FOUNDATION PLAN UCM - S - 加载 1H_lester.virata.sfw811 - Sheet - 1H-S11-00 - LEVEL 01 FOUNDATION PLAN

UCM - S - Loading 1H_lester.virata.sfw811 - Sheet - 1H-S11-00A - LEVEL 01 REINFORCEMENT PLAN UCM - S - 加载 1H_lester.virata.sfw811 - 表 - 1H-S11-00A - 01 级加固计划

UCM - S - Loading 1H_lester.virata.sfw811 - Sheet - 1H-S11-01A - LEVEL 02 ROOF REINFORCEMENT PLAN UCM - S - 加载 1H_lester.virata.sfw811 - 板材 - 1H-S11-01A - 02 级屋顶加固计划

I want to return: 1HS1100 1HS1100A 1HS1101A我要退货:1HS1100 1HS1100A 1HS1101A

您可以使用\\w+-[\\w-]+example )捕获带连字符的字符串,然后使用替换 / 替换命令处理它们以将'-'替换为''

"^[^\\d]+(\\d\\w)_\\w+.\\w+.(\\w+)[^\\d]+(\\w+)-(\\w+)-(\\w+)[^\\d]+(\\d+)" "^[^\\d]+(\\d\\w)_\\w+.\\w+.(\\w+)[^\\d]+(\\w+)-(\\w+)-(\\w+)[^\\d] +(\\d+)"

Just combine all the matches from the above regular expression and that should do it.只需结合上述正则表达式中的所有匹配项即可。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM