java中re正则表达式的一个疑惑
大家讲道理
大家讲道理 2017-04-18 09:31:00
0
2
406

java中,Pattern.matches("\\d+","2223");返回的是true。

如果Pattern.matches("\d+",匹配的又是什么呢?
比如换行符"\n"要匹配的时候,难道也要像上面那样写成"\\n"才能匹配成换行符?那re中"\n"匹配的又是什么呢?

大家讲道理
大家讲道理

光阴似箭催人老,日月如移越少年。

全員に返信(2)
阿神

dエラー:
エラー: 不正なエスケープ文字


+: 複数回一致することを示します
d+d、...、ddd などと一致します


以前はこの問題に注目していなかったので、情報を探しましたが、私の最初の理解に問題がありました。

\n または n のいずれかである必要があります

1 つ目は、n を正規表現に直接変換し、通常のエンジンで処理することです。
2 つ目は、n を Java によって直接改行文字に変換することです。これは 'u000A'もちろん正規です式も一致させることができます


最後の質問は、リテラル "\"+"n"
を照合することです。正規表現をコンパイルするときに Pattern.LITERAL を使用すると、通常のエンジンが n および 、および改行文字 n と一致するとはみなされません。 もちろん、最初のメソッドを使用する必要があります
。 リーリー

いいねを押す +0
左手右手慢动作

言語には正規の型がなく、文字列としてのみ表現できるため、もう一度エスケープする必要があります。
\n は通常の n に一致する改行です。n は文字列置換です。もちろん、改行

に直接一致するのは正しいです。
いいねを押す +0
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート