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

时间:2018-01-18 13:36:07

标签: .net regex

如果字符串中有 - 或〜或=或任何特殊字符,我会使此正则表达式中断。基本上,我想删除第一个字母(这是一个)并删除最后一个下划线后的所有内容。 (RegEx必须是一个班轮)例如,Tester链接http://regexstorm.net/tester?p=%28%3f%3c%3da%29%5b%5cw+%5d%2b%28%3f%3d_%29&i=aPersonal+Protective+Equipment_REV2.docx%0d%0aaFreight+Forwarder+Standard+Operating+Procedure+-++Armenia_REV1.docx&o=i

(?<=a)[\w ]+(?=_)

aPersonal Protective Equipment_REV2.docx - 适用于此字符串(结果为个人防护装备)

但是跟随字符串失败了 aFreight Forwarder标准操作程序 - Armenia_REV1.docx(结果是rmenia)

2 个答案:

答案 0 :(得分:0)

将模式更改为此似乎可以解决短划线的问题:

alter table users
    add constraint unq_users_name_client unique (name, client);

我的测试用例:

  

aPersonal Protective Equipment_REV2.docx
  aFreight Forwarder标准操作程序 - Armenia_REV1.docx
  aFreight Forwarder ~~标准操作=程序 - Armenia_REV1.docx

(?<=a)[\w\-=~ ]+(?=_) 匹配单词。破折号是一个单词边界..为了保留它,你必须匹配它。

您可以考虑

\w

代替。如果您要一次匹配多个项目,则需要使用多行模式 这个将匹配第一个字符和最后一个下划线之间的任何字符。

答案 1 :(得分:-1)

(^.*?(?=a)a)|_[^_]*$

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

asomefile_(rw_340-v4) follow up by_ver2.xlsx

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