在Notepad ++中使用逗号或点字符后,从文本字符串中获取特定子字符串

时间:2012-06-28 12:39:31

标签: regex string split notepad++

我需要有关NOTEPAD ++正则表达式的帮助。这看起来很简单... uff。

我有一个包含4列的xls文件,其中包含文本字符串(1列= 1种语言)。当我从这个文件中复制一行到NOTEPAD ++时,我得到一个长字符串,所有语言都被一个标签分隔。

Example:

This is a example. It's my first time here. Hello everybody. ... Last sentence. TAB Ésto es un ejemplo. Es la primera vez que busco respuesta aquí. Hola a todos. ... Última frase. TAB Substring_German01. Substring_German02. Substring_German03. ... Substring_GermanXX. TAB Substring_French01. Substring_French02. Substring_French03. ... Substring_FrenchXX.

在NOTEPAD ++中用 \ n 替换 \ t 我得到:

This is a example. It's my first time here. Hello everybody. ... Last sentence. 
Ésto es un ejemplo. Es la primera vez que busco respuesta aquí. Hola a todos. ... Última frase. 
Substring_German01. Substring_German02. Substring_German03. ... Substring_GermanXX. 
Substring_French01. Substring_French02. Substring_French03. ... Substring_FrenchXX.

我如何使用REGEX获取特定的子站

所需结果:

搜索:REGEX SENTENCE 替换:\ 1

This is a example.
Ésto es un ejemplo.
Substring_German01.
Substring_French01.

搜索:REGEX SENTENCE 替换:\ 2

It's my first time here. Hello everybody.
Es la primera vez que busco respuesta aquí.
Substring_German02.
Substring_French02.

搜索:REGEX SENTENCE 替换:\ 3

Hello everybody.
Hola a todos.
Substring_German03.
Substring_French03.

谢谢!

4 个答案:

答案 0 :(得分:0)

您可以在正则表达式中使用括号(.*) (.*) ...并使用\1 \2 \n...

访问它们

示例Hello Dude SomeFixedString How Are You

搜索(.*)SomeFixedString(.*)

替换为\2 foooo \1

会给你

How Are You foooo Hello Dude

答案 1 :(得分:0)

使用以下替换模式:

(?:.*?\S[.!?]){0}\s*(.*?\S[.!?])(?:\s.*?TAB|(?!.*TAB)\s.*|\s*$)

(?:.*?\S[.!?]){1}\s*(.*?\S[.!?])(?:\s.*?TAB|(?!.*TAB)\s.*|\s*$)

(?:.*?\S[.!?]){2}\s*(.*?\S[.!?])(?:\s.*?TAB|(?!.*TAB)\s.*|\s*$)

(?:.*?\S[.!?]){3}\s*(.*?\S[.!?])(?:\s.*?TAB|(?!.*TAB)\s.*|\s*$)

...等

...并使用 \1\n

替换每个匹配项

答案 2 :(得分:0)

试试这个:

([^ ][^. ]).*?\.

使用此RegEx搜索处理第二个文本框中的内容(使用\ n替换\ t后),您应该正确获取子字符串。

它也会避免我认为你不想要的“......”部分。

答案 3 :(得分:0)

为什么不首先将xls文件保存为XML电子表格?然后你已经拥有了每个单元格。然后只需编写代码即可删除标签。