java中,Pattern.matches("\\d+","2223");返回的是true。
Pattern.matches("\\d+","2223");
如果Pattern.matches("\d+",匹配的又是什么呢?比如换行符"\n"要匹配的时候,难道也要像上面那样写成"\\n"才能匹配成换行符?那re中"\n"匹配的又是什么呢?
Pattern.matches("\d+",
"\n"
"\\n"
光阴似箭催人老,日月如移越少年。
dエラー: エラー: 不正なエスケープ文字
d
+: 複数回一致することを示します d+ は d、...、ddd などと一致します
d+
ddd
以前はこの問題に注目していなかったので、情報を探しましたが、私の最初の理解に問題がありました。
は \n または n のいずれかである必要があります
\n
n
1 つ目は、n を正規表現に直接変換し、通常のエンジンで処理することです。2 つ目は、n を Java によって直接改行文字に変換することです。これは 'u000A'もちろん正規です式も一致させることができます
'u000A'
最後の質問は、リテラル "\"+"n" を照合することです。正規表現をコンパイルするときに Pattern.LITERAL を使用すると、通常のエンジンが n を および 、および改行文字 n と一致するとはみなされません。 もちろん、最初のメソッドを使用する必要があります 。 リーリー
"\"
"n"
Pattern.LITERAL
言語には正規の型がなく、文字列としてのみ表現できるため、もう一度エスケープする必要があります。 \n は通常の n に一致する改行です。n は文字列置換です。もちろん、改行
d
エラー:エラー: 不正なエスケープ文字
+: 複数回一致することを示します
d+
はd
、...、ddd
などと一致します以前はこの問題に注目していなかったので、情報を探しましたが、私の最初の理解に問題がありました。
は
\n
またはn
のいずれかである必要があります1 つ目は、
n
を正規表現に直接変換し、通常のエンジンで処理することです。2 つ目は、
n
を Java によって直接改行文字に変換することです。これは'u000A'
もちろん正規です式も一致させることができます最後の質問は、リテラル
"\"
+"n"
を照合することです。正規表現をコンパイルするときに
Pattern.LITERAL
を使用すると、通常のエンジンがn
をおよび 、および改行文字
n
と一致するとはみなされません。 もちろん、最初のメソッドを使用する必要があります。 リーリー
言語には正規の型がなく、文字列としてのみ表現できるため、もう一度エスケープする必要があります。
に直接一致するのは正しいです。\n
は通常の n に一致する改行です。n
は文字列置換です。もちろん、改行