Atom编辑器-使用正则表达式用标签包装文本

时间:2019-05-02 14:49:11

标签: regex atom-editor

在Atom中,我正在处理一个巨大的文本文件,并且必须用<li> </li>包装所有文本行。

例如:

ELECTRICAL PRODUCTS

<li>ELECTRICAL PRODUCTS</li>

谢谢!

3 个答案:

答案 0 :(得分:2)

请考虑以下示例数据。

a1sd
1fasd
1fsa
f1sa
f1as
df1
saf1a
sa1
sa

您需要做的就是找到txt文件中使用的分隔符。.假设它是换行符,然后找到\ n并将其替换为</li>\n<li> ..(它可能是\ n或\ r或\ r \ n)

然后输出将为

a1sd</li>
<li>1fasd</li>
<li>1fsa</li>
<li>f1sa</li>
<li>f1as</li>
<li>df1</li>
<li>saf1a</li>
<li>sd1fsf</li>
<li>d1f</li>
<li>sa1</li>
<li>sa

您可以在文件的开头和结尾处手动添加。

<li>a1sd</li>
<li>1fasd</li>
<li>1fsa</li>
<li>f1sa</li>
<li>f1as</li>
<li>df1</li>
<li>saf1a</li>
<li>sd1fsf</li>
<li>d1f</li>
<li>sa1</li>
<li>sa</li>

答案 1 :(得分:2)

看起来您的文本文件中有空行,这很正常。要不将空行转换为<li></li>格式,您需要使用与纯空行或仅包含空格的行不匹配的正则表达式,因为没有用处只能替换<li>标记内的空格。您可以更好地使用此正则表达式来匹配非空行。

(\S+(?: +\S+)*)

将整行分组为group1,然后将其替换为<li>$1</li>

Regex Demo

如您所见,空行保持不变,<li>标记中所有非空行均被替换。

希望这对您来说很好。如有任何问题,请通知我。

答案 2 :(得分:0)

使用以下正则表达式模式对内容进行分组和替换:

string li_pattern = @"(?:w+])*+(?<li>[\s\S]*?[;.\n])";
var res = Regex.Replace(text, li_pattern, @"<li>${li}</li>");

[https://regex101.com/r/kJFzQr/1][1]