2011-10-28 45 views
10

Tôi muốn thay thế dấu ngoặc kép thẳng (") bằng C#.Cách thay thế dấu ngoặc kép thẳng (")

tôi có thể thiếu một cái gì đó nhỏ, nhưng tôi không thể có được nó với một bình thường string.Replace();

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

Tôi có thể làm điều đó với một bình thường string.Replace(); hay tôi cần phải sử dụng Regex? Nếu sau này, những gì sẽ thay thế Regex trông như thế nào?

+0

Mặc dù bạn có thể muốn sử dụng hàm urlencode (Tôi nghĩ được xây dựng trong): http://msdn.microsoft.com/en-us/library/zttxte6w.aspx nếu đó thực sự là những gì bạn đang cố gắng làm. – Dan

Trả lời

18

Tôi đồng ý với Heinzi, bạn nên sử dụng " thay vì && có nghĩa là "&" Btw, sau khi gọi phương thức Replace, đừng quên để thiết lập giá trị cho someWord một lần nữa:

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

Và còn một cách khác để thực hiện. Thêm tham chiếu System.Web và sử dụng System.Web; rồi:

someWord = HttpUtility.HtmlEncode (someWord);

+0

Điều này có thay thế tất cả các ký tự đặc biệt không? '(HttpUtility.HtmlEncode (someWord);)' – Willem

+1

@Willem Có, nó sẽ. Nếu bạn chỉ muốn thay thế dấu ngoặc kép thẳng, không sử dụng nó. – ojlovecd

+0

Thats tuyệt vời. Tôi sẽ tiết kiệm rất nhiều thời gian. Cảm ơn – Willem

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

hoặc

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

(Quotes được thoát như \" trong chuỗi thường xuyên và "" trong chuỗi đúng nguyên văn).

Nhưng bạn có thể có nghĩa là

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

kể từ khi thực thể HTML cho dấu ngoặc kép thẳng là ", không phải &.

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

hoặc

someWord.Replace("\"", "&"); 
Các vấn đề liên quan