Java中正则表达式如何实现从右往左匹配?

如:美国/n正/d全力/d说服/v中国/n进一步/d执行/v必要/a的/u经济/n改革/v与/c环境/n保护/v工作/v。/w想找到“改革/v”左边字符串的最后一个“/n... 如:美国/n 正/d 全力/d 说服/v 中国/n 进一步/d 执行/v 必要/a 的/u 经济/n 改革/v 与/c 环境/n 保护/v 工作/v 。/w
想找到“改革/v”左边字符串的最后一个“/n”,即左边最邻近的一个。
展开
 我来答
方杭尽
推荐于2018-05-07 · TA获得超过1万个赞
知道大有可为答主
回答量:1296
采纳率:0%
帮助的人:655万
展开全部
你的左右没分清楚

如果不用正则表达式,就用int i = str.lastIndexOf("/n");能找出位置来

如果用正则表达式,就用"(/n)(?=(^/n)*)"意思就是匹配后面再没有/n的/n
Mdaimon
2010-12-30 · TA获得超过310个赞
知道答主
回答量:88
采纳率:0%
帮助的人:84.1万
展开全部
我觉得你应该换个思路,你把源字符串和要匹配的字符串都反转一下,然后再检索,不就满足你的要求了吗。写程序很多时候都是采用迂回战术的。祝你好运
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
awkbu05
2011-01-03 · TA获得超过3991个赞
知道小有建树答主
回答量:2354
采纳率:0%
帮助的人:1570万
展开全部
String subjectString=new String("0.0.0.0 0.255.255.255 CHINA 中国1");
String resultString = null;
try {
Pattern regex = Pattern.compile("(\\d) ");
Matcher regexMatcher = regex.matcher(subjectString);
try {
resultString = regexMatcher.replaceAll("$1,");
} catch (IllegalArgumentException ex) {
// Syntax error in the replacement text (unescaped $ signs?)
} catch (IndexOutOfBoundsException ex) {
// Non-existent backreference used the replacement text
}
} catch (PatternSyntaxException ex) {
// Syntax error in the regular expression
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百年星空
2010-12-30 · TA获得超过143个赞
知道小有建树答主
回答量:165
采纳率:0%
帮助的人:156万
展开全部
(/n).*?改革/v
括号捕获后该咋咋的。
或者,正则表达式有个修饰符是从右往左匹配的,不清楚JAVA支不支持
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式