Привіт, я шукаю в тексті відповідність зразка блокнота ++, а також пропоную кілька замін. Але поки що, що я придумав, схоже, не працює.
Приклад тексту:
1 blablablabla. blablnsnsnns, blalblblbl: blablaa; balal blala. 2 blblb'blbµµ77777µµlblb blblb, blslsµµ105µµnlsllsl.
3 blalblblbl: blablaa; balal blala. 4 blblb'blbµµ9999µµlblb . Blblb, blslsnlsllsl. 5 jsjjsjj; gggbqbqbq: ghshhqhhqh !. Gsgsjjsskksk. 6 fshhhshs, nnsnnsns! nsnnsn. 7 blalallallal7600hhzhz ; nmmkzjzbzbzb34fspmmm :
blslslslsavccacac,
hkkdlfmfmmf56balalala.
hdfmmfm87kdkkkkfkf.
8 blalalallajhshduie.
9 bslslslslls :
blslsllsllls,
bslslllsllsls.
nsnsnnsnsnnsnns,
hsbbbslslsllsllsls.
10 bslsllsllsllsllslls à sbsbbsbbsb , snsnnsnnsnnsn.
Пошук шаблону:
я шукаю початок будь-якого числа, за яким пробіл і деякі тексти, і зупинки перед тим, як з'явиться наступне число, яке передує пробілу.
групування має виглядати так:
- група 1: число
- група 2: пробільний символ, що слідує за номером
- група 3: деякий текст, який також може включати деякі числа, але ці числа не знаходяться між символами пробілу, натомість знаходяться між (µµ).
Очікувані результати:
<VERSETAG=1>blablablabla. blablnsnsnns, blalblblbl: blablaa; balal blala.</VERSETAG>
<VERSETAG=2> blblb'blbµµ77777µµlblb blblb, blslsµµ105µµnlsllsl.</VERSETAG>
<VERSETAG=3>blalblblbl: blablaa; balal blala.</VERSETAG>
<VERSETAG=4>blblb'blbµµ9999µµlblb . Blblb, blslsnlsllsl.</VERSETAG>
<VERSETAG=5>jsjjsjj; gggbqbqbq: ghshhqhhqh !. Gsgsjjsskksk.</VERSETAG>
<VERSETAG=6>fshhhshs, nnsnnsns! nsnnsn.</VERSETAG>
<VERSETAG=7>blalallallal7600hhzhz ; nmmkzjzbzbzb34fspmmm :
blslslslsavccacac,
hkkdlfmfmmf56balalala.
hdfmmfm87kdkkkkfkf.</VERSETAG>
<VERSETAG=8>blalalallajhshduie.</VERSETAG>
<VERSETAG=9>bslslslslls :</VERSETAG>
<VERSETAG=10>bslsllsllsllsllslls à sbsbbsbbsb , snsnnsnnsnnsn.</VERSETAG>
Тестовано за допомогою цього Regex завдяки @Toto (але поки що не працює, як очікувалося, див. Результат нижче):
Look for :
(?:^\D*|\G )(\d+)\s+(.+?)\R?(?=\s\d+\s|\z)
replace with :
<VERSETAG=$1>$2</VERSETAG>\n
Результат тесту:
<VERSETAG=1>blablablabla. blablnsnsnns, blalblblbl: blablaa; balal blala.</VERSETAG>
2 blblb'blbµµ77777µµlblb blblb, blslsµµ105µµnlsllsl.
<VERSETAG=3>blalblblbl: blablaa; balal blala.</VERSETAG>
<VERSETAG=4>blblb'blbµµ9999µµlblb . Blblb, blslsnlsllsl.</VERSETAG>
<VERSETAG=5>jsjjsjj; gggbqbqbq: ghshhqhhqh !. Gsgsjjsskksk.</VERSETAG>
<VERSETAG=6>fshhhshs, nnsnnsns! nsnnsn.</VERSETAG>
7 blalallallal7600hhzhz ; nmmkzjzbzbzb34fspmmm :
blslslslsavccacac,
hkkdlfmfmmf56balalala.
hdfmmfm87kdkkkkfkf.
8 blalalallajhshduie.
9 bslslslslls :
<VERSETAG=10>bslsllsllsllsllslls à sbsbbsbbsb , snsnnsnnsnnsn.</VERSETAG>
Наперед Вам дякую!
Не могли б ви сказати нам на словах, чого має досягти ваша модель?
—
harrymc
Привіт, як описано в очікуваному результаті: Коли він знаходить число, за яким пробіл, він повинен помістити туди тег із цим номером всередині (<VERSETAG = 1>) і перед тим, як зустріти наступне число, за яким пробіл, він повинен поставити завершальний тег. (</VERSETAG>)
—
Pmicezjk
Я просто біжу з вашим новим тестовим випадком, він працює досить чудово. Ви перевірили
—
Toto
. matches newline
?
Так, справді зараз працює чудово !! Дивовижно! Чудова допомога!
—
Pmicezjk