当前位置: 首页 > 知识库问答 >
问题:

Java正则表达式检查字符串的第一个和最后一个字符是否相同[重复]

堵远航
2023-03-14

我试图检查字符串的第一个和最后一个字符是否相同。最基本的方法是简单地比较第一个和最后一个字符,就完成了。

str.charAt(0) == str.charAt(str.length()-1)?true:false;

str=“ababa”//将返回真值。

str=“abab”//将返回false。

但是有没有一种方法可以使用模式匹配器和预定义的正则表达式来比较整个字符串?

共有2个答案

邢洋
2023-03-14

下面是一个关于如何在java中使用正则表达式的链接:https://www.javatpoint.com/java-regex

您的正则表达式应该是:“^(.”*\1$"

如果您想查看其他选项,这里是答案链接:如何匹配以相同字母开头和结尾的字符串

程磊
2023-03-14

使用String#将与反向引用匹配:

List<String> inputs = Arrays.asList(new String[] { "ababa", "abab" });
for (String input : inputs) {
    if (input.matches("(.).*\\1")) {
        System.out.println("MATCH:    " + input);
    }
    else {
        System.out.println("NO MATCH: " + input);
    }
}

这打印:

MATCH:    ababa
NO MATCH: abab
 类似资料:
  • 有没有简单的方法来检查字符串的第一个和最后一个字符是否相同,只使用正则表达式? 我知道你可以和查拉特核实一下 我不是要求正则表达式匹配第一个字符和最后一个字符

  • 我试图使用正则表达式来检查字符串中的第一个和最后一个字符是否是a-z之间的字母字符。 我知道这与第一个字符匹配: 但是我如何检查最后一个字符呢? 这: 不起作用。我怀疑这两个条款之间应该有什么区别,但我不知道是什么!

  • 我想删除字符串末尾的所有数字和符号。得到: 我可以剥离数字,但不能剥离。我该怎么做? 这是我到目前为止的代码:

  • 这工作正常,所以如果歌曲名称是这是*名称,它将创建别名。但是,如果名称在开头或结尾有特殊字符它将创建 - 在两端创建连字符。

  • 问题内容: 这是一些示例输入: 我想提取代表实际类型的字符串。所以我的输出是: 这是我到目前为止使用的正则表达式(因为它是Java语言,所以进行了两次转义): 它适用于,但不适用于其他两个。我认为最好的解决方案是基本上说“在最后一个冒号之后得到所有内容”,但我不确定如何做。请注意,它还必须包含这些内容。 问题答案: 您不需要正则表达式: 只需找到最后一个,然后把所有东西都拿走。然后修剪它以删除前导

  • rank ▲ ✰ vote url 41 487 108 705 url 检查一个字符串是否是一个数字 如果一个字符串可以被看做一个数字那么有什么好的方法可以检测出来? 我能想到的方法: def is_number(s): try: float(s) return True except ValueError: return Fals