栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

Java中的正则表达式反向引用

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Java中的正则表达式反向引用

$1
在Java的正则表达式中不是反向引用,也不是我能想到的任何其他形式。您仅
$1
替换 某些东西时使用:

String input="A12.3 bla bla my input";input = StringUtils.replacePattern( input, "^([A-Z]\d{2}\.\d).*$", "$1");//^^^^

关于反向引用是什么存在一些误导信息,包括我从中获得该摘录的位置:带有反向引用的简单Javaregex不起作用。


Java在其他

$
已经成为元字符的现有风格之后,对其正则表达式语法进行了建模。它锚定到字符串的末尾(或在多行模式下为行)。

同样,Java使用

1
反向引用。由于正则表达式是字符串,因此必须转义:
\1

从词汇/句法的角度来看,确实

$1
可以明确地使用它(作为一项奖励,使用反向引用时,它可以防止“邪恶逃脱”的需要)。

为了匹配

1
行尾之后的,正则表达式必须为
$n1

this line1

使用熟悉的语法而不是更改规则(大多数来自Perl)更有意义。

Perl的第一个版本于1987年问世,比Java早得多,后者于1995年以beta版本发布。

我挖了Perl 1的手册页,其中说:

( ...)
也可以使用包围结构,在这种情况下,
<digit>
匹配第
digit
‘个子字符串。(在模式之外,请始终使用
$
而不是
在数字前使用。
$<digit>
(和
$``,
$&
$’
)的范围扩展到封闭的BLOCK或eval字符串的末尾,或扩展到与子表达式匹配的下一个模式。该
符号有时在外部起作用当前的模式,但不应该依赖。)您可以根据需要添加任意多个括号。如果你有超过9子,变量
$10
$11
......请参阅相应的字符串。在模式中
10
11
,等等。如果在反向引用之前至少有很多左括号,请返回子字符串。否则(出于向后兼容性考虑)
10
10
,退格键和制表符
11
相同
11
。等等。(
1
通过
9`总是反向引用。)



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/425922.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号