分隔多年多段,我曾经在记事本中一个非常方便的技巧++和赛特这让我由一个令牌拆分给定的字符串了。例如,给定此输入:记事本++的正则表达式:匹配的令牌
first name|last name
bob|johansen
scarlet|scarnetti
nelson|huguemeyer
然后,我可以执行一个正则表达式来将其转换为HTML表格。搜索字符串将是:
(.+)|(.+)
而替换字符串是:
<tr><td>\1</td><td>\2</td></tr>
最终的结果将是:
<tr><td>first name</td><td>last name</td></tr>
<tr><td>bob</td><td>johansen</td></tr>
<tr><td>scarlet</td><td>scarnetti</td></tr>
<tr><td>nelson</td><td>huguemeyer</td></tr>
当我有数以百计的长行的电子表格并需要转换成HTML格式,这是非常有用的!
不幸的是,在最近的版本似乎正则表达式引擎已经改变,使得上面不再作品我的搜索模式。的(.+)
第一次出现从线到线的末端的开始处匹配的一切,忽略了中间的|
字符。
我已经无可奈何地通过各种不同的搜索模式试图找到一个将获得一切到第一个|
,然后一切后面的一切。在较长的实例中,有可能是通过|
字符分隔五或六个不同的段。
到目前为止,我的努力都失败了。在Notepad ++中,通过正则表达式在特定的标记中分割一行输入需要做些什么?
曾经出现过的工作?我认为你需要'(。+)\ |(。+)'。如果你需要所有的* first *'|',那么你的模式根本就不工作,你需要'(。*?)\ |(。*)'。 *在较长的例子中,可能会有五个或六个不同的段被|隔开人物。* - 那你想要什么? –
它发生,我要替换所有'|'和''(无需正则表达式),然后2)'^'正则表达式用'
是的,它工作很好多年。但是我最近升级到了更新的版本 - 从2007年起我一直在使用SciTE版本,直到最近,它看起来像最近的Notepad ++有很多不同之处。例如,'|'在我的旧版本中不是常规表达式的重要字符。当我习惯单线时,它似乎默认在多行上运行。根据你的第二条评论,我尝试了'^([^ \ |] +)\ |([^ \ |] +)\ |([^ \ |] +)$'我想要的。作为答案的文件,我会接受它。 –