Отвечая на вопрос:
Есть ли способ сделать так, чтобы оба персонажа работали?
Если вы хотите, чтобы один Regex мог обрабатывать оба сценарияВозможно, это простое и удобочитаемое решение:
Regex apostropheReplace = new Regex("s\\['’]s");
docText = apostropheReplace.Replace(docText, "s\'")
Это дает дополнительное преимущество, заключающееся в том, что другие разработчики понимают, что вы пытаетесь охватить оба случая апострофа. Это преимущество можно получить по другой части вашего вопроса:
Если использование скопированного символа из Word является правильным способом сделать это?
Это зависит от того, что вы имеете в виду"правильно". Если вы имеете в виду «наиболее понятным для других разработчиков», я бы сказал, что да, потому что было бы наименьшее количество запросов, необходимых для точного определения того, что ищет ваш Regex. Если вы имеете в виду «наиболее производительный», это не должно быть проблемой с этим простым поиском Regex (некоторые хорошие советы по производительности Regex можно найти здесь ).
Если вы имеете в виду «наиболее универсальный /надежная одинарная кавычка Regex ", тогда, как указывает @ Leonardo-Seccia, существуют другие кодировки символов, которые могут вызвать проблемы. (Некоторые из распространенных Microsoft Word перечислены здесь здесь .) Такое решение может выглядеть следующим образом:
Regex apostropheReplace =
new Regex("s\\['\u2018\u2019\u201A\u201b]s");
docText = apostropheReplace.Replace(docText, "s\'")
Но вы, безусловно, можете добавлять другие кодировки символов по мере необходимости. Более полный список кодировок символов можно найти здесь - чтобы добавить их к приведенному выше регулярному выражению, просто измените «U +» на «u» и добавьте его в список после другого символа «\». Например, чтобы добавить «простой» символ (′ или U + 2032) в приведенный выше список, измените строку RegEx с
Regex("s\\['\u2018\u2019\u201A\u201b]s")
на
Regex("s\\['\u2018\u2019\u201A\u201b\u2032]s")
В конечном итоге вы быОпределите, какие кодировки символов являются наиболее «подходящими» для включения в ваше регулярное выражение на основе ваших вариантов использования.