【问题标题】:Regex: Match any character a, specific character b and then a again正则表达式:匹配任何字符a,特定字符b,然后再匹配a
【发布时间】:2019-04-12 00:03:51
【问题描述】:

我正在尝试在 java 上实现一种算法,我需要一种方法来匹配我找到任何字符(让我们将其命名为 a)然后是字符“X”,然后是之前的相同字符 a 的模式。最初的想法是正则表达式,尽管经过一段时间未能找到一种方法来做到这一点,我正在考虑遍历所有字符并逐个检查它们......

但在此之前,如果有人可以提供帮助,我需要一些东西,以便(“AXA”、“EXE”、“RXR”等)匹配,而(“AXB”、“EXA”、“TXX”等)匹配不是。

尝试使用“.X”之类的内容。但当然失败了,因为它匹配'X'之前和之后的任何东西......

有没有办法匹配这样的东西?

【问题讨论】:

    标签: java regex pattern-matching


    【解决方案1】:

    捕获前导字符,并使用反向引用:

    (.)X\1
    

    live demo

    请注意,在 java 中,您需要使用 2 个斜杠来制作文字斜杠:

    "AXA".matches("(.)X\\1") // true
    

    【讨论】:

    • 谢谢。这正是我所需要的!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-06-19
    • 2015-02-20
    • 2020-12-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多