正则表达式在两个已知单词之间选择文本

时间:2012-04-20 16:39:55

标签: regex variables

我有模式 TABLE * some_table * LARGE READ_ONLY LOTS_OF_OTHER_WORDS {

我想选择出来 LADGE READ_ONLY LOTS_OF_OTHER_WORDS

我想在some_table之后删除所有单词,其中some_table每次都是不同的表名。 我试过(?< = TABLE \ s(。?)\ s)。但是(。*?)看起来不起作用。

2 个答案:

答案 0 :(得分:0)

这是吗?

TABLE \w+ (.*)

http://regexr.com?30ncp

答案 1 :(得分:0)

  • 在您要删除的字词之后是否总是有一个大括号?
  • some_table名称是否总是一个单词名称?

如果是这样,我会使用:

TABLE\s?(\s*[^{]*?){

然后你需要替换第一组中的匹配。

编辑:我忘记了不应该成为比赛一部分的表名 - 更新的正则表达式:

TABLE\s*?\w+\s?([^{]*?){

说明:
- 找到字符串表
- 匹配第一个单词(并允许前后的空格)\s*?\w+\s?
- 小组:匹配不是大括号([^{]*?)的所有内容 - 匹配支架