2

我有这个表情

accordionMain_i0_accordion_i0_ctl01_0_ddl_xxxxxxxx_iy_tblItem

其中 xxx 也可以包含 '_' 并且它的数量会有所不同,并且 y 从 0 开始递增。我想使用正则表达式提取 xxxxxx。我尝试了 split 函数,但 xxxx 可以包含多个 '_' ,因此通过从 split 中删除数组的最后 2 个元素,我必须检查 ddl,然后加入 xxx 的所有部分等。你知道使用 REGEX 的更好方法吗? 任何帮助将不胜感激。

4

3 回答 3

3

如果您的 RegEx 引擎支持lookaheadand lookbehind,则使用:

(?<=_ddl_)\w+?(?=_i\d+)

别的

(:_ddl_)(\w+?)(?:_i\d+)
于 2012-06-28T19:20:20.747 回答
2

如果找到匹配,RegexaccordionMain_i0_accordion_i0_ctl01_0_ddl_(.*?)_i\d+_tblItem将返回您的xxxxxxxx 。

于 2012-06-28T19:17:42.800 回答
1

您应该指定您使用的语言。但这里有一个尝试:

/accordionMain_i0_accordion_i0_ctl01_0_ddl_([x_]+)_i\d+_tblItem/

然后,您的 x 将存储在第一个捕获中,$1.

这是一个演示:http ://rubular.com/r/MH4GbMStdf 。

编辑:

如果您的意思是“任何东西”而不是文字“x”,那么:

/accordionMain_i0_accordion_i0_ctl01_0_ddl_(.+)_i\d+_tblItem/
于 2012-06-28T19:17:31.860 回答