0

次のようなテキストがあります (1 つまたは 0 つのタブ + 行頭に複数の空白):

(tab)   There are a tab and 4 whitespaces before me.    // line 1
(tab)     There are a tab and 6 whitespaces before me.  // line 2
       There are 6 whitespaces before me.               // line 3
   There are 4 whitespaces before me.                   // line 4   

を使用する^[\t\s]\s*と、1 行目と 2 行目だけが一致し、3 行目と 4 行目は一致しません。なぜですか?

( を使う^\s*と3行目と4行目が一致します。)

ありがとう!

4

3 に答える 3

2

\s内の空白を一致させるために使用できないことがわかり[]ました。内で一致させるために使用するだけ[]です。

于 2012-08-20T15:22:05.190 に答える
1

それは興味深い。が括弧\s内で機能しない理由がわかりません。[]おそらく、[]明示的な文字を定義しており、\sあいまいであるためです (複数の文字を表すことができます)。つまり\s、タブ ( ) を含む任意の空白を表します\t。ただし、この場合 ( ^[\t ]\s*) にスペースを明示的に指定すると機能します。

于 2012-08-20T15:21:32.913 に答える
0

前述のように、\s内では機能しません。あるいは、文字クラス[]を使用することもできます。[:blank:]

^[[:blank:]]\+
于 2012-08-20T18:15:34.470 に答える