Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Помогите нубу с регуляркой! (https://javascript.ru/forum/misc/82144-pomogite-nubu-s-regulyarkojj.html)

рони 20.03.2021 19:27

voraa,
:)
<pre>
<script>
const rs = /^\s*?(?=\t+[ \n]*?\S)/mig
let s2 = '\n\t \n\t\t      Журнал'
document.writeln(s2.replace(rs, '').replace(/\t/g, 'T').replace(/\s/g, 'S'))
let s3 = '\n\t\n\t\tЖурнал'
document.writeln(s3.replace(rs, '').replace(/\t/g, 'T').replace(/\s/g, 'S'))
let s4 = ' \t \t\tЖурнал'
document.writeln(s4.replace(rs, '').replace(/\t/g, 'T').replace(/\s/g, 'S'))
let s5 = ' \t \n Журнал'
document.writeln(s5.replace(rs, '').replace(/\t/g, 'T').replace(/\s/g, 'S'))
let s6 = '\t\tЖурнал'
document.writeln(s6.replace(rs, '').replace(/\t/g, 'T').replace(/\s/g, 'S'))
</script>
</pre>

voraa 20.03.2021 20:26

Не
5 вариант не идет. Там должно быть SЖурнал
Вроде нормальная проблема.
Есть строковое значение, состоящее из многих строк, разделенных \n
Надо убрать первые пустые строки (если они есть) Пустые - не содержащие ничего, кроме \t и пробелов
А вот со строкой, которая не пустая, не могу понять, как там убирать надо.
Хотел убирать в начале строки все, до последней группы табуляций (если она есть).
А если ее нет, и там одни пробелы, то их вроде как оставить надо.

рони 20.03.2021 21:52

Цитата:

Сообщение от voraa
Там должно быть SЖурнал

:)
<pre>
<script>
const rs = /^\s*?\n?(?=\t*[ ]*\S)/mig;
let s2 = '\n\t \n\t\t      Журнал'
document.writeln(s2.replace(rs, '').replace(/\t/g, 'T').replace(/\s/g, 'S'))
let s3 = '\n\t\n\t\tЖурнал'
document.writeln(s3.replace(rs, '').replace(/\t/g, 'T').replace(/\s/g, 'S'))
let s4 = ' \t \t\tЖурнал'
document.writeln(s4.replace(rs, '').replace(/\t/g, 'T').replace(/\s/g, 'S'))
let s5 = ' \t \n Журнал'
document.writeln(s5.replace(rs, '').replace(/\t/g, 'T').replace(/\s/g, 'S'))
let s6 = '\t\tЖурнал'
document.writeln(s6.replace(rs, '').replace(/\t/g, 'T').replace(/\s/g, 'S'))
</script>
</pre>

voraa 20.03.2021 22:26

А я так сделал
<pre>
<script>
const rs = /^(\s*?)(\t*[ ]*\S(.|\n)*)/
let s1 = 'Журнал\n газета' 
document.writeln(s1.replace(rs,'$2').replace(/[ ]/g, 'S').replace(/\t/g, 'T').replace(/\n/g, 'N'))
let s2 = '\n\t \n\t\t Журнал\nгазета' 
document.writeln(s2.replace(rs,'$2').replace(/[ ]/g, 'S').replace(/\t/g, 'T').replace(/\n/g, 'N'))
let s3 = '\n\t\n\t\tЖурнал\n\tгазета' 
document.writeln(s3.replace(rs,'$2').replace(/[ ]/g, 'S').replace(/\t/g, 'T').replace(/\n/g, 'N'))
let s4 = ' \t \n\t  Журнал\n\t\t газета' 
document.writeln(s4.replace(rs,'$2').replace(/[ ]/g, 'S').replace(/\t/g, 'T').replace(/\n/g, 'N'))
let s5 = '\t\tЖурнал\n\t\t газета' 
document.writeln(s5.replace(rs,'$2').replace(/[ ]/g, 'S').replace(/\t/g, 'T').replace(/\n/g, 'N'))
let s6 = '  Журнал\n\t\t газета' 
document.writeln(s6.replace(rs,'$2').replace(/[ ]/g, 'S').replace(/\t/g, 'T').replace(/\n/g, 'N'))
let s7 = '\n\t\n Журнал\n\t\t газета' 
document.writeln(s7.replace(rs,'$2').replace(/[ ]/g, 'S').replace(/\t/g, 'T').replace(/\n/g, 'N'))
</script>
</pre>


Часовой пояс GMT +3, время: 15:16.