RegExp: вклинило по простому вопросу - граница слова - VB
Формулировка задачи:
шаблон "\Be"
строка "de"
Почему есть мач на 1 позиции не могу понять, ведь шаблон должен означать нахождение внутри слова а не на границе ?
Тестер см,например, на http://www.pcre.ru/eval/
строка "de"
Почему есть мач на 1 позиции не могу понять, ведь шаблон должен означать нахождение внутри слова а не на границе ?
Тестер см,например, на http://www.pcre.ru/eval/
Решение задачи: «RegExp: вклинило по простому вопросу - граница слова»
textual
Листинг программы
s=<font color="teal">" /d/////ee/"</font> <font color="blue">Set</font> re2=<font color="blue">New</font> RegExp: re2.MultiLine=False: re2.Global=True: re2.IgnoreCase=True <font color="00AA00">'re2.Pattern=<font color="teal">"\S/"</font> ' <font color="teal">"(?<=\S)/(?=.*)"</font> ' тварь vb не может</font> re2.Pattern=<font color="teal">"(\S)(/)"</font> <font color="00AA00">' If re2.Test(s) Then s=re2.Replace(s, <font color="teal">"\"</font>)</font> <font color="blue">If</font> False <font color="blue">then</font> <font color="blue">Set</font> matches2 = re2.Execute(s) <font color="blue">For</font> <font color="blue">Each</font> match2 <font color="blue">in</font> matches2 k=match2.FirstIndex+<font color="darkblue"><b>1</b></font> s = Left(s,k) & <font color="teal">"\"</font> & <font color="blue">Mid</font>(s,k+<font color="darkblue"><b>2</b></font>) <font color="blue">If</font> <font color="blue">Mid</font>(s,k,<font color="darkblue"><b>1</b></font>)=<font color="teal">"/"</font> <font color="blue">Then</font> s = Left(s,k-<font color="darkblue"><b>1</b></font>) & <font color="teal">"\"</font> & <font color="blue">Mid</font>(s,k+<font color="darkblue"><b>1</b></font>) <font color="00AA00">' Replace(s, <font color="teal">"/"</font>, <font color="teal">"\"</font>,match2.FirstIndex+1,1)</font> <font color="blue">If</font> <font color="blue">Mid</font>(s,k+<font color="darkblue"><b>2</b></font>,<font color="darkblue"><b>1</b></font>)=<font color="teal">"/"</font> <font color="blue">Then</font> s = Left(s,k+<font color="darkblue"><b>1</b></font>) & <font color="teal">"\"</font> & <font color="blue">Mid</font>(s,k+<font color="darkblue"><b>3</b></font>) <font color="00AA00">'Replace(s, <font color="teal">"/"</font>, <font color="teal">"\"</font>,match2.FirstIndex+3,1)</font> <font color="blue">Next</font> <font color="blue">Else</font> <font color="blue">If</font> re2.Test(s) <font color="blue">Then</font> s=re2.Replace(s,<font color="teal">"$1\"</font>) <font color="blue">If</font> re2.Test(s) <font color="blue">Then</font> s=re2.Replace(s,<font color="teal">"$1\"</font>) <font color="blue">End</font> <font color="blue">If</font> MsgBox <font color="teal">"|"</font> & s & <font color="teal">"|"</font>
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д