REGEX在设置长度后查找第一个实例

时间:2016-04-14 16:26:53

标签: regex

我可能会因为提出这个问题而受到嘲笑,但在搜索并试图自己弄清楚这个正则表达式后,我只是厌倦了浪费时间试图找出答案。这就是我试图解决的问题。我经常使用editpad pro来转换字符串,以便它们适合大型机。

例如,我想将excel中的一列单词转换为sql的IN子句。该列大约5000字。

我可以轻松地将其复制并粘贴到文本编辑器中,然后使用查找和替换将一列单词转换为单行,其中包含','分开每个单词。

一旦完成,虽然我想使用正则表达式在70个字符过去之后在逗号之前或之后拆分此行。

(?P<start>^.{0,70}) 

这将给我前70个字符,但后来我卡住了,因为我无法弄清楚如何创建下一个组来查找下一个逗号的所有字符所以我可以像这样引用它

(?P<start>^.{0,70})(?P<next>????,)

如果我能得到它,那么我可以创建一个查找和替换,它会在第70个字符后面出现的第一个逗号后打破它。

我知道在剩下的时间里我可以弄清楚,但我需要继续前进。我之前尝试过这个。我甚至愿意只找到前7个字符然后接下来几个字符直到逗号,然后必须重复替换并多次查找,如果有必要,但我无法使正则表达式工作。

对此的任何帮助将不胜感激。

以下是我添加了换行符的一些示例数据,作为在正则表达式运行后我希望它看起来像的示例。

'Ability','Absence','Absolute','Absorb','Accident','Acclaim','Accompany',
'Accomplish','Achievement','Acquaintance','Acquire','Across','Acting','Address',
'Admire','Adorable','Advance','Advertisement','Afraid','Agriculture','Align',
'All','Allow','Allowance','Allowed','Alone','Aluminium','Always','America',
'Analyze','Android','Angle','Announce','Annual','Ant','Antarctica','Antler',

1 个答案:

答案 0 :(得分:0)

我认为您应该考虑限制初始连接,但这是您具体实施的解决方案:

^.{0,70}[^,]*

这将选择前70个字符(如果可用),然后选择每个字符直到下一个逗号前的字符。

我认为你不需要这里的小组,但显然可以将它们添加到正则表达式中:

(?P<start>^.{0,70})(?P<next>[^,]*)