仅使用正则表达式在字符串中查找中间字符

时间:2013-06-26 06:42:56

标签: c# java regex

如何才能找到仅使用正则表达式的中间字符

例如,这显示了预期的输出

Hello - > l

world - > r

merged - > rg(参见偶数次出现)

hi - > hi

I - > I

我试过

(?<=\w+).(?=\w+)

3 个答案:

答案 0 :(得分:5)

正则表达式无法按照您要查找的方式计算。这看起来像正则表达式无法实现的东西。我建议编写代码来解决这个问题。

答案 1 :(得分:1)

String str="Hello";
String mid="";
int len = str.length();
if(len%2==1)
    mid= Character.toString(str.getCharAt(len/2));
else
    mid= Character.toString(str.getChatAt(len/2))+ Character.toStringstr.getCharAt((len/2)-1));

这应该可行。

答案 2 :(得分:1)

public static void main(String[] args) {
        String s = "jogijogi";
        int size = s.length() / 2;
        String temp = "";
        if (s.length() % 2 == 0) {
            temp = s.substring(size - 1, (s.length() - size) + 1);
        } else if (s.length() % 2 != 0) {
            temp = s.substring(size, (s.length() - size));
        } else {
            temp = s.substring(1);

        }

        System.out.println(temp);
    }