Các thẳng nhất về phía trước, và hiệu quả nhất, sẽ chỉ đơn giản là vòng lặp thông qua các nhân vật trong chuỗi:
int cnt = 0;
foreach (char c in test) {
if (c == '&') cnt++;
}
Bạn có thể sử dụng phần mở rộng LINQ để thực hiện một đơn giản hơn và gần như là phiên bản hiệu quả. Có nhiều hơn một chút trên không, nhưng nó vẫn còn đáng ngạc nhiên gần với vòng lặp trong hoạt động:
int cnt = test.Count(c => c == '&');
Sau đó là cũ Replace
lừa, tuy nhiên đó là phù hợp hơn cho các ngôn ngữ nơi vòng lặp là vụng về (SQL) hoặc chậm (VBScript):
int cnt = test.Length - test.Replace("&", "").Length;
Tại sao regex ?????? – CodesInChaos
@CodeInChaos Bởi vì một số người, khi đối mặt với một vấn đề, nghĩ rằng "Tôi biết, tôi sẽ sử dụng các biểu thức chính quy." – Tanzelax
@Tanzelax. [Giống như cái này] (http://stackoverflow.com/questions/1732348/regex-match-open-tags-except-xhtml-self-contained-tags)? **: -) ** – gdoron