Найти / Заменить Word Puzzle - PullRequest
0 голосов
/ 05 мая 2009

Допустим, у меня есть объект, который содержит свойство Word и свойство Sentence. В предложении должно использоваться слово, и я хочу заменить слово в этом предложении ссылкой, используя открытую функцию (скажем, GetLinkedSentence). Подвох в том, что, возможно, в предложении используется форма слова во множественном числе, и, возможно, само «слово» на самом деле является фразой или даже дефисом. Там нет ограничения по длине слова тоже. Как мне найти и заменить это слово (в ASP.NET, предпочтительно VB) ссылкой (www.example.com/?[word])?

Ответы [ 2 ]

1 голос
/ 08 мая 2009

Посмотрите на RegEx.Replace в пространстве имен System.Text.RegularExpressions.

Например, заменить слово «погода» в предложении «Погода сегодня - дождь». со ссылкой вы можете сделать что-то вроде следующего:

RegEx.Replace(sSentence, "(weather('s)?)", "<a href='http://www.weather.com'>$1</a>")

Приведенное выше регулярное выражение также заменит простые множественные слова (с 's в конце). Вы могли бы получить более сложные выражения для множественного числа.

0 голосов
/ 14 мая 2009

проверьте это регулярное выражение (с помощью Expresso, спасибо eidylon!):

(?:(?:\b\w+)?{1}(?:{2}|{3})?).+?\b

где:

{1} = целое слово минус последние две буквы. например, если слово «счастливый», {1} заменяется на «hap»

{2} = от второй до последней буквы слова («p», если слово «счастливый»)

{3} = вторая, последняя и последняя буква слова (в данном примере «py»)

это найдет "счастливый", "счастливый", "несчастный", "несчастный" ... к сожалению, для этого примера, он также найдет такие слова, как "случилось", "несчастный", "происходит" и т. Д., Это будет работать для я, потому что я обычно собираюсь искать более непонятные слова, где корень не так часто встречается, а слово немного длиннее, например, "усугубить", поэтому оно будет соответствовать "exacerba", "exacerbat" и "усугубить ", что на порядок менее распространено, чем" hap "," happ "и" happy ". Также важно отметить, что в нем не будут найдены слова с обширными корневыми изменениями, такие как «человек» к «людям».

так что, хотя это и не идеальное решение, оно работает для меня :) спасибо, что указали мне правильное направление, eidylon! теперь у меня гораздо лучшее понимание регулярных выражений!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...