正则表达式 - 查找动态字符组之前和之后的所有内容

时间:2017-05-06 00:22:20

标签: regex

这就是我想要做的。我需要操纵电子表格中的一些亚马逊数据。以下是电子表格中第一个文本单元格的示例(引号不是实际电子表格单元格内容的一部分):

工具和家居装修(前100名)中的#864”

我需要删除类别前后的所有内容(粗体)。类别将发生变化 - 在每个电子表格单元格中都不一样。在上面的示例中,需要删除“#864 in”(数字总是有一个井号,后跟一个数字...... 1到可能是数百万,后跟一个空格,后跟“in”,然后是另一个空格)

此外,该类别后面将始终有“(前100名)”。我需要找到(并最终删除)所有这些以及单元格中的一些其他东西(“前100名”之后有很多东西 - 我只是没有包含它 - 单词,字符,单独的行/ paragraph等。)。

我只需要这个类别。我被卡住了!希望这是有道理的。任何帮助,将不胜感激。感谢。

2 个答案:

答案 0 :(得分:0)

在Google电子表格中:

查找:^#\d+ in (.*) \(Top 100\).*

替换:$1

答案 1 :(得分:0)

第一要求: 删除Top 100之后的额外行

查找:^#[\d,]+ in (.*) \(Top 100\)[\s\S]*

替换$1

我还注意到另一个错误,如果起始编号有逗号,那么正则表达式不包括在内,所以我也包含了修复。现在它甚至可以匹配'#10,286 in ...'等等。

第二项要求:要删除单元格中除最后一个数字以外的所有内容:

查找:[\s\S]*?([\d,.]+)$

替换$1

取代了467/468细胞

注意:使用数据,两个正则表达式似乎都运行正常。确保在运行正则表达式替换之前选择了正确的列。此外,请记住,第一个不适用于没有(前100名)的单元格 - 有一些需求。

使用上述表达式执行带有正则表达式替换的演示表:link

希望这有帮助!