【发布时间】:2012-03-27 20:42:40
【问题描述】:
我需要一些帮助来编写正则表达式。我有以下字符串,
xxx.yyy.wwwwwaaa_IN_123
xxx.rrrttttt_IN_12355
zz.iiiiolll_IN_12
xxx.zzzz.rrrr.yyy.wwwwwwww_IN_1232
使用 Regex.Replace,我想将字符串从上述格式更改为类似
"$1($2)" 其中$2 是字符串末尾的数字,$1 是_IN_ 标记之前最后一个子字符串的前三个字母。
换句话说,
xxx.yyy.wwwwwaaa_IN_123 www(123)
xxx.rrrttttt_IN_12355 rrr(12355)
iiiiolll_IN_12 iii(12)
xxx.zzzz.rrrr.yyy.wwwwwwww_IN_1232 www(1232)
这就是我所拥有的,
".*.([^\.]{3})[^\.]_IN_+([0-9]+)"
但这只接受_IN_ 标记之前的最后一个字母,而不是最后一个子字符串的第一个字母。
提前致谢
【问题讨论】:
-
这个有是一个正则表达式吗?看起来可以用
string.Split和string.Format完成。 -
是的,正则表达式的使用是一个限制:(
-
.*.([^\.]{3})[^\.]应该是什么意思? -
不,自定义框架限制。这是一个可以接受正则表达式的查询解析器。
-
(^|\.)(.{3})[^_]*_IN_([0-9]+) -- $2($3)