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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java中正则表达式如何实现从右往左匹配?相关的知识,希望对你有一定的参考价值。

如:美国/n 正/d 全力/d 说服/v 中国/n 进一步/d 执行/v 必要/a 的/u 经济/n 改革/v 与/c 环境/n 保护/v 工作/v 。/w
想找到“改革/v”左边字符串的最后一个“/n”,即左边最邻近的一个。

你的左右没分清楚

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

如果用正则表达式,就用"(/n)(?=(^/n)*)"意思就是匹配后面再没有/n的/n
参考技术A 我觉得你应该换个思路,你把源字符串和要匹配的字符串都反转一下,然后再检索,不就满足你的要求了吗。写程序很多时候都是采用迂回战术的。祝你好运 参考技术B 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
参考技术C (/n).*?改革/v
括号捕获后该咋咋的。
或者,正则表达式有个修饰符是从右往左匹配的,不清楚JAVA支不支持

Leetcode练习(Python):栈类:第103题:二叉树的锯齿形层次遍历:给定一个二叉树,返回其节点值的锯齿形层次遍历。(即先从左往右,再从右往左进行下一层遍历,以此类推,层与层之间交替进行)。

题目:

二叉树的锯齿形层次遍历:给定一个二叉树,返回其节点值的锯齿形层次遍历。(即先从左往右,再从右往左进行下一层遍历,以此类推,层与层之间交替进行)。

思路:

使用层序遍历的思路,但是没有用到栈。

程序:

# Definition for a binary tree node.
# class TreeNode:
#     def __init__(self, x):
#         self.val = x
#         self.left = None
#         self.right = None

class Solution:
    def zigzagLevelOrder(self, root: TreeNode) -> List[List[int]]:
        if not root:
            return []
        result = []
        current_level = [root]
        index = 0
        while current_level:
            auxiliary = []
            next_level = []
            for node in current_level:
                auxiliary.append(node.val)
                if node.left:
                    next_level.append(node.left)
                if node.right:
                    next_level.append(node.right)
            if index % 2 == 1:
                result.append(auxiliary[::-1])
            if index % 2 == 0:
                result.append(auxiliary)
            index += 1
            current_level = next_level
        return result

  

以上是关于Java中正则表达式如何实现从右往左匹配?的主要内容,如果未能解决你的问题,请参考以下文章

请问JAVA中正则表达式匹配怎么实现的!

java正则表达式如何获取字符串中所有匹配内容

java 正则表达式 如何匹配固定长度的数字

用JAVA语言编写正则表达式匹配指定的汉字的方法

Java如何在正则表达式中匹配重复单词?

java中,正则表达式,如何过滤除数字和字母之外的其它字符??