【程序】

package test;

import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class Test4 {
    public static void main(String[] args) {
        String[] arr= {"#{1A}","${b1}","${1}","${222}","${A_A}","${name}","${1_2}","hello","6397"};
        
        for(String str:arr) {
            System.out.println(getInnerText(str));
        }
    }
    
    private static String getInnerText(String text) {
        Pattern pattern = Pattern.compile("^([$]|[#])([{]([_a-zA-Z0-9]*[a-zA-Z]+[_a-zA-Z0-9]*)[}])$", Pattern.CASE_INSENSITIVE);
        
        Matcher matcher=pattern.matcher(text);
        while(matcher.find()) {
            return matcher.group(3);
        }
        
        return text;
    }
}

输出:


1A
b1
${1}
${222}
A_A
name
${1_2}
hello
6397

【正则式分析】

^([$]|[#])([{]([_a-zA-Z0-9]*[a-zA-Z]+[_a-zA-Z0-9]*)[}])$中

^....$ : 从头到尾

([$]|[#]) :开头是$或#

[{]:接着是一个{

[_a-zA-Z0-9]*[a-zA-Z]+[_a-zA-Z0-9]*:下划线字母数字随意,但一定要有一个字母,否则构不成变量。

[}]:再接着一个}

matcher.group(3):第三个成对的括号部分

END

 

相关文章:

  • 2022-01-03
  • 2021-10-02
  • 2021-09-27
  • 2021-06-18
  • 2022-12-23
  • 2021-08-06
  • 2021-05-30
  • 2021-12-18
猜你喜欢
  • 2021-07-25
  • 2022-03-10
  • 2021-09-29
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
相关资源
相似解决方案