首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >RegEx (.net)删除第一个字符和最后下划线之后的所有内容

RegEx (.net)删除第一个字符和最后下划线之后的所有内容
EN

Stack Overflow用户
提问于 2018-01-18 13:36:06
回答 2查看 100关注 0票数 0

如果字符串中有-或~或=或任何特殊字符,则这个Regex会中断。基本上,我想删除第一个字母(即a),并删除最后下划线之后的所有内容。(RegEx必须是一个班轮),例如,测试器链接REV1.docx&o=i

代码语言:javascript
运行
复制
(?<=a)[\w ]+(?=_)

aPersonal防护Equipment_REV2.docx -为该字符串工作(结果是个人防护设备)

但是,以下字符串aFreight转发器标准操作过程- Armenia_REV1.docx失败(结果为rmenia)

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-02-21 15:22:15

代码语言:javascript
运行
复制
(^.*?(?=a)a)|_[^_]*$

上面的RegEx起作用(替换和忽略案例)

代码语言:javascript
运行
复制
asomefile_(rw_340-v4) follow up by_ver2.xlsx

结果:somefile_(rw_340-v4) follow up by

票数 -1
EN

Stack Overflow用户

发布于 2018-01-18 13:41:53

改变这种模式似乎是为了解决破折号的问题:

代码语言:javascript
运行
复制
(?<=a)[\w\-=~ ]+(?=_)

我的测试用例:

aPersonal保护性Equipment_REV2.docx aFreight转发器标准操作规程- Armenia_REV1.docx aFreight转发器~~标准Operating=程序- Armenia_REV1.docx

\w与单词匹配。破折号是一个词界..。为了保存它,你也必须匹配它。

你可能会考虑

代码语言:javascript
运行
复制
(?<=^a).+?(?=_.+?$)

而不是。如果要一次匹配多个项目,则需要多行模式。

这个字符将匹配第一个字符和最后一个下划线之间的任何字符。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48322666

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档