Что такое регулярное выражение для замены жала в тексте с переменным какСтроки заменить Regex
{MERGEFIELD fieldname}
в тексте с {DOCPROPERTY fieldname \* MERGEFORMAT}
имя_полем является переменным.
Что такое регулярное выражение для замены жала в тексте с переменным какСтроки заменить Regex
{MERGEFIELD fieldname}
в тексте с {DOCPROPERTY fieldname \* MERGEFORMAT}
имя_полем является переменным.
dim str as string = "{DOCPROPERTY fieldname \* MERGEFORMAT}"
str = Regex.Replace(str, Regex.Escape(fieldname), "this is what you want to replace", RegexOptions.IgnoreCase)
Примечание: вам нужно добавить в строку какой-либо идентификатор, который вы хотите заменить. например, "{DOCPROPERTY [fieldname_NAME] \* MERGEFORMAT}"
добавление [] помогает правильно идентифицировать. Вот пример.
dim str as string = "Welcome, [name]"
str = Regex.Replace(str, Regex.Escape("[name]"), "Jeff", RegexOptions.IgnoreCase)
Спасибо zzzzz, но я не думаю, что это сработает для меня, потому что имя поля в тексте всегда отличается от {MERGEFIELD Company}, {MERGEFIELD Tel}, { Почтовый индекс MERGEFIELD}. и т. д. Мне нужно выражение, чтобы игнорировать часть строки между start ("{MERGEFIELD") и end ("}"). –
Я бы сначала извлечь имя поля, а затем отформатировать новую строку:
Dim input = "{MERGEFIELD somefieldname}"
Dim fieldName = Regex.Match(input, "(?<=MERGEFIELD)\w+").Value
Dim newString = String.Format("{{DOCPROPERTY {0} \* MERGEFORMAT}}", fieldName)
'newString value is "{DOCPROPERTY somefieldname \* MERGEFORMAT}"
Это не очень понятно ... Вы можете просто использовать [String.Replace] (https: // MSDN. microsoft.com/en-us/library/fk49wtc1(v=vs.110).aspx)? –
String.Replace было бы более очевидным ответом. Если вы можете дать еще несколько образцов, вы получите дополнительную помощь. – Nefariis