Малко помощ за Regular Expressions


0
Здравейте. Имам следното питане - съществува ли вариант, при който както при стринговете да се ползват "целувчиците" и за регулярните изрази..

Пример:
string searched = (@"\bin\b");
Вместо "in" да сложа {0} и след това да задам търсената дума, нещо такова:
string searched = (@"\b{0}\b",in);



Отговори



-1
Сещам се за String.Format
string key="your keyword";
string searched=String.Format("\b{0}\b",key);



0

Нищо не ти пречи, да си подадеш какъвто искаш pattern. В един от случайте, в който го ползвам аз, за матчване на подобен на моя низ, е дори много по извратен:

 StringBuilder sb = new StringBuilder();
            for (int i = 0; i < oldCaptionText.Length; i++)
            {
                char ch = oldCaptionText[i];
                if (ch >= 'а' && ch <= 'я')
                {
                    sb.Append(oldCaptionText[i]);
                }
                else
                {
                    sb.Append(@"[\w\W]*?");
                }
            }
 
            string pattern = "(" + sb.ToString() + @"[\w\W]*?\n)";

от dtraykov (30 точки)


0

Да, ако напишеш:

 string searched = string.Format(@"\b{0}\b","in");

Можеш да ползваш стринга searched за pattern.

Естествено така е малко безсмислено, можеш вместо "in" да сложиш каквато и да е променлива.


от anilak (1134 точки)


5
Да има такаъв вариант. Използва се конкатенация.
(@"\b" + searchedword + @"\b")

от sttodorov (321 точки)


0
Благодаря. Баш ми свърши работа :)

от topsoft (420 точки)

0
най-лесния вариант е този колега! :) Но ако имаш да го използваш повече пъти, ще е по-бавен от горните.( аналогично на разликата между string и StringBuilder)