正则表达式获取特定单词之后和引号之间的所有数据

时间:2016-07-04 15:41:09

标签: regex sublimetext2

我有一个包含大量数据的xml文件,但它还包含一个类似于此的ID列表

<test test-id="014727">
<not-test not-test-id="11111">
<not-test not-test-id="22222">
<not-test not-test-id="3333">
<test test-id="019727">
<test test-id="013727">

到目前为止,我已经搜索了test-id,它给出了所有数字的列表,但它没有过滤掉其他信息。

在sublime文本中使用正则表达式,如何在test-id之后获取所有数字的列表?

所以从上面的例子中我将有3行:

  1. 014727

  2. 019727

  3. 013727

2 个答案:

答案 0 :(得分:0)

修改

编辑原始问题以排除<not-test not-test-id="11111">个节点。修改下面的步骤 2 ,在搜索查询中的之前添加空格(test-id)。其余步骤保持不变。

  

以下按键用于 OS X 上的Sublime。如果有人想提供Windows等价物,那将会有所帮助。

  1. cmd - f 进入搜索模式
  2. 输入文字test-id
  3. opt - 输入以匹配当前文件中的所有结果
  4. 突出显示test-id的每个实例,使用 3 次将光标向右移动3个字符
  5. opt - shift - 选择整个单词(本例中为数字)
  6. cmd - c 将所选文本复制到剪贴板
  7. 将您的插入符移动到您希望粘贴复制的数字的任何位置,然后按 cmd - v
  8. enter image description here

    在上面的gif中,我以

    结束
    1. cmd - a 选择所有文字
    2. cmd - v 以粘贴复制的数字

答案 1 :(得分:0)

这个常规exp。将搜索多个test-id属性,并在全局列出匹配项:

/(?:test-id=")([^"]*)(?:")/g