正则表达式提取字符串

时间:2012-06-28 19:07:37

标签: regex

我有这个表达

accordionMain_i0_accordion_i0_ctl01_0_ddl_xxxxxxxx_iy_tblItem

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

3 个答案:

答案 0 :(得分:3)

如果您的RegEx引擎支持lookaheadlookbehind,请使用:

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

否则

(:_ddl_)(\w+?)(?:_i\d+)

答案 1 :(得分:2)

如果找到匹配项,

正则表达式accordionMain_i0_accordion_i0_ctl01_0_ddl_(.*?)_i\d+_tblItem会返回 xxxxxxxx

答案 2 :(得分: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/