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

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

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

大家讲道理
大家讲道理

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

répondre à tous(2)
阿神

dVous le saurez après l'avoir essayé. Erreur :
erreur : caractère d'échappement illégal


+ : Indique une correspondance supérieure à une fois
d+ correspondances d,...,ddd,... et autres


Je n'ai pas prêté attention à ce problème auparavant, puis j'ai cherché des informations. J'ai également eu des problèmes avec ma compréhension initiale. La réponse à l'instant était incomplète

.

devrait être \n ou n soit

La première consiste à convertir directement n en une expression régulière et à être traité par le moteur régulier.
La seconde consiste à convertir n directement en un caractère de nouvelle ligne par Java, qui est 'u000A'Bien sûr régulier les expressions peuvent également être mises en correspondance


La dernière question est de faire correspondre le littéral "\"+"n"
Vous pouvez utiliser Pattern.LITERAL lors de la compilation de l'expression régulière, afin que le moteur régulier traite n comme et <.>, et Il n'est pas considéré comme correspondant au caractère de nouvelle ligne n Bien sûr, la première méthode doit être utilisée
.

Pattern.compile("\n", Pattern.LITERAL );

左手右手慢动作

Étant donné que votre langage n'a pas de type régulier et ne peut être exprimé que sous forme de chaîne, vous devez y échapper une fois de plus.
\n est une nouvelle ligne normale correspondant à n, n est un remplacement de chaîne, bien sûr, il est correct de faire correspondre directement une nouvelle ligne

Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal