Atom Editor - Обтекание текста тегами с помощью регулярных выражений - PullRequest
0 голосов
/ 02 мая 2019

В Atom я работаю с огромным текстовым файлом, и мне нужно обернуть все текстовые строки <li> </li>.

Например:

ELECTRICAL PRODUCTS

<li>ELECTRICAL PRODUCTS</li>

Спасибо!

Ответы [ 3 ]

2 голосов
/ 02 мая 2019

Рассмотрим приведенные ниже примеры данных.

a1sd
1fasd
1fsa
f1sa
f1as
df1
saf1a
sa1
sa

Все, что вам нужно сделать, - это найти разделитель, используемый в текстовом файле. Допустим, это перевод строки, затем найдите \ 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>
2 голосов
/ 02 мая 2019

Похоже, в вашем текстовом файле есть пустые строки, что нормально.Чтобы не преобразовывать пустые строки в <li></li> форму, вам нужно использовать регулярное выражение, которое не соответствует чистым пустым строкам или строкам, которые содержат только пробелы, поскольку нет смысла заменять только пробелы в тегах <li>.Вы можете лучше использовать это регулярное выражение для сопоставления с непустыми строками.

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

, который группирует целую строку в group1, а затем заменяет ее на <li>$1</li>

Regex Demo

Как видите, пустые строки остаются без изменений, а все непустые строки заменяются в тегах <li>.

Надеюсь, это будет хорошо работать для вас,Дайте мне знать, если возникнут какие-либо вопросы.

0 голосов
/ 02 мая 2019

Сгруппируйте и замените содержимое следующим шаблоном Regex:

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]

...