smksamy Ответов: 1

Как сделать эту замену регулярного выражения?


В этом кодировании я нашел emdash endash и подчеркивание между двумя словами , которые хранятся в списке двух слов, но мой заменить не получилось у любого есть лучшее решение.

public void EnDashToHyphen(Office.IRibbonControl control)
        {
         
            Word.Document doc = Globals.ThisAddIn.Application.ActiveDocument;
            MessageBox.Show("tested");

            List<string> AcidList = new List<string>()
            {
                 {"One"},{"Two"},{"The"},{"Four"},{"Five}        
       };
            foreach(Word.Range story in doc.StoryRanges)
            {
                foreach(Word.Paragraph para in story.Paragraphs)
                {
                    //Word.Range temp;
                    foreach(Word.Range w in para.Range.Words)
                    {
                        Word.Range d = w.Duplicate;
                       
                        if (Regex.IsMatch(w.Text, "[\u2013\u2014\u005F]", RegexOptions.Multiline))
                        {
                            if (AcidList.Contains(w.Previous(Word.WdUnits.wdWord,1).Text) && AcidList.Contains(w.Previous(Word.WdUnits.wdWord,1).Text))
                            {
                                Regex.Replace(d.ToString(), "^[\u2013\u2014\u005F]$", "^HYPHEN$");
                                //MessageBox.Show(w.Text);
                            }
                        }
                    }
                }
            }
        }

1 Ответов

Рейтинг:
0

OriginalGriff

Это регулярное выражение не является "emdash endash и underscore , между двумя словами" - это "строка (или целая строка), содержащая один единственный символ, который должен быть одним из emdash, endash или underscore"

Я бы посоветовал вам сначала попробовать протестировать регулярное выражение: получить копию Экспрессо [^] - это бесплатно, и он проверяет и генерирует регулярные выражения.
И да, это позволит вам проверить замену.


smksamy

У меня есть некоторые знания в регулярном выражении, но я стараюсь использовать регулярное выражение со значением диапазона, в любом случае спасибо за ваше предложение