title: StringUtils.countMatches() isn't working for tab char
body: <p>I am validating a csv file with content like:</p>
  
  <p><code>TEST;F;12345;0X4321 - 1234 DUMMYTEXT;0X4321 - 1234 TESTTEXT</code></p>
  
  <p>Until now, the values were seperated by ';' and the method worked like a charm:</p>
  
  <pre><code>private static final String COLUMN_SEPARATOR = ";";
  
  public void validateFile(BufferedReader reader) {
  
      String line = reader.readLine();
  
      while (line != null &amp;&amp; result == ValidationResult.VALID) {  
  
          //this is broken with tab-stop as COLUMN_SEPARATOR          
          int matches = StringUtils.countMatches(line, COLUMN_SEPARATOR);
  
          if (matches != getCSVColumnCount() - 1
              &amp;&amp; StringUtils.isNotBlank(line)) {
  
              if (matches == 0) {
                  //MISSING_CSV_COLUMN_SEPERATOR;
              } else {
                  //UNEXPECTED_CSV_COLUMN_COUNT;
              }                   
          }
          line = reader.readLine();
      }       
  }
  </code></pre>
  
  <p>As a changed requirement, now I have to handle tab stops as column seperator, while the text can contain whitespaces:</p>
  
  <p><code>TEST   F   12345   0x4321 - 1234 DUMMYTEXT 0x4321 - 1234 TESTTEXT</code></p>
  
  <p>I changed the following line:</p>
  
  <pre><code>private static final String COLUMN_SEPARATOR = "\\t";
  </code></pre>
  
  <p><strong>Problem:</strong> <code>StringUtils.countMatches(line, "\\t")</code> <strong>cannot find any occurences</strong> (returns 0). I don't want to do:</p>
  
  <pre><code>int matches = line.split("\\t").length;
  </code></pre>
  
  <p>as I am supersticious that it would be a significant performance hit (the csv-files aren't small). Do you know a better way to go?</p>