Jython输出格式,在第N个字符处添加符号

时间:2014-04-04 13:39:30

标签: python regex jython

我有一个可能很容易解决的问题。我有一个脚本,从各个地方获取数字与他们数学,然后打印结果作为字符串。

这是一个样本

type("c", KEY_CTRL)
LeInput = Env.getClipboard().strip() #Takes stuff from clipboard
LeInput = LeInput.replace("-","") #Quick replace
Variable = int(LeInput) + 5 #Simple math operation

StringOut = str(Variable) #Converts it to string
popup(StringOut) #shows result for the amazed user

但我想要做的是按照XXXX-XX-XX再次添加“ - ”符号,但我不知道如何使用Regex等执行此操作。我唯一的解决方案是将它除以10 ^ N将其拆分为越来越小的整数。举个例子:

int 543442/100 = 5434给第一个字符串编号5434,然后重复处理直到我分裂了足够的次数以获得我的5434-42或其他。

那么如何在第N个字符处插入任何符号?

好的,所以这里是基于Tenub答案的Jython解决方案

import re
strOut = re.sub(r'^(\d{4})(.{2})(.{2})', r'\1-\2-\3', strIn)

使用Jython进行Regex时可能值得注意:

  

解决方案是使用Python的常规字符串表示法   表达模式;反斜杠不以任何特殊方式处理   带有'r'前缀的字符串文字。 所以r“\ n”是一个双字符   * 包含'\'和'n'的字符串,而“\ n”是一个单字符的字符串 *   包含换行符。通常模式将用Python表示   * 使用此原始字符串表示法的代码。 *

这是一个工作示例 http://regex101.com/r/oN2wF1

1 个答案:

答案 0 :(得分:0)

在这种情况下,您可以使用以下内容进行替换:

(\d{4})(\d{2})(\d+)

$1-$2-$3