RegExp: вклинило по простому вопросу - граница слова - VB

Узнай цену своей работы

Формулировка задачи:

шаблон "\Be"
строка "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>

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

12   голосов , оценка 4.667 из 5