将字符串中字符的每个实例替换为 Sublime Text 中字符串的第一个数字
Replace each instance of a character in a string with the first number of the string in Sublime Text
这可能是一个非常模糊的请求,但我有 6,000 多行看起来像这样..
#1234 - 1,9
#5678 - 7,10,23
我需要获取 #1234(用户 ID)并将其与字符串中的每个数字配对以生成新字符串,即
#1234 - 1
#1234 - 9
#5678 - 7
#5678 - 10
#5678 - 23
如何做到这一点?这些行都因字符串
中有多少 numbers/commas 而异
如果 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
要用户正则表达式替换,您可以重复此搜索和替换直到不再剩余:
搜索:
^((#[0-9]+ - )[0-9,]+),([0-9]+)$
并替换为
\n
这可能是一个非常模糊的请求,但我有 6,000 多行看起来像这样..
#1234 - 1,9
#5678 - 7,10,23
我需要获取 #1234(用户 ID)并将其与字符串中的每个数字配对以生成新字符串,即
#1234 - 1
#1234 - 9
#5678 - 7
#5678 - 10
#5678 - 23
如何做到这一点?这些行都因字符串
中有多少 numbers/commas 而异如果 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
要用户正则表达式替换,您可以重复此搜索和替换直到不再剩余:
搜索:
^((#[0-9]+ - )[0-9,]+),([0-9]+)$
并替换为
\n