使用Sublime Text中的第一个字符串数替换字符串中的每个字符实例

时间:2017-06-13 23:38:35

标签: regex sublimetext2

这可能是一个非常模糊的要求,但我有6,000多行看起来像这样..

#1234 - 1,9
#5678 - 7,10,23

我需要取#1234(用户ID)并将其与字符串中的每个数字配对以创建新字符串,即

#1234 - 1
#1234 - 9
#5678 - 7
#5678 - 10
#5678 - 23

如何做到这一点?这些行的不同之处在于字符串中的数字/逗号数量

2 个答案:

答案 0 :(得分:1)

对于用户正则表达式替换,您可以重复此搜索并替换,直到不再存在:

搜索:

^((#[0-9]+ - )[0-9,]+),([0-9]+)$

并替换为

$1\n$2$3

答案 1 :(得分:0)

如果python是一个选项,对于这个特定的情况,这段代码应该有效:

from re import findall

input = """#1234 - 1,9
#5678 - 7,10,23"""
regexStr = "\d+"
for line in input.split('\n'):
    matches = findall(regexStr, line)
    for i in range(1, len(matches)):
        print("#" + matches[0] + " - " + matches[i])

输出:

#1234 - 1
#1234 - 9
#5678 - 7
#5678 - 10
#5678 - 23