2011-10-28 21 views
10

Chciałbym zastąpić prosty cudzysłów (") przy użyciu C#.Jak zamienić prosty cudzysłów (")

I może brakować coś małego, ale nie mogę go z normalnym string.Replace();

someWord.Replace(@""", "&");

mogę zrobić to z normalnym string.Replace(); czy muszę używać Regex? Jeśli to drugie, jak wyglądałby zamiennik Regex?

+0

Chociaż możesz chcieć użyć funkcji (myślę, że wbudowana) funkcja urlencode: http://msdn.microsoft.com/en-us/library/zttxte6w.aspx, jeśli tak właśnie chcesz. – Dan

Odpowiedz

18

zgadzam się z Heinzi, należy użyć " zamiast & i & oznacza "&" Btw, po wywołaniu metody Replace, nie zapomnij, aby ustawić wartość ponownie dla pewnej wartości:

someWord = someWord.Replace("\"", """); 

Jest jeszcze inny sposób na zrobienie tego. Dodaj referencyjny System.Web i użyj System.Web; następnie:

someWord = HttpUtility.HtmlEncode (someWord);

+0

Czy to zastąpi wszystkie znaki specjalne? '(HttpUtility.HtmlEncode (someWord);)' – Willem

+1

@Willem Tak, będzie. Jeśli chcesz tylko zamienić prosty cudzysłów, nie używaj go. – ojlovecd

+0

To świetnie. Oszczędzę mi dużo czasu. Dzięki – Willem

10
someWord.Replace("\"", "&"); 

lub

someWord.Replace(@"""", "&"); 

(cudzysłowy są uciekł jak \" w regularnych ciągów i "" w pełnych ciągów.)

Ale pewnie oznaczało

someWord.Replace("\"", """); 

od podmiotu HTML w przypadku prostych cudzysłowów jest to ", a nie &.

1
someWord.Replace(@"""", "&"); 

lub

someWord.Replace("\"", "&");