字符串java模式中的大写

时间:2011-09-29 07:52:43

标签: java regex string

每个人,我从昨天起就试图解决这个问题。

包含(AZ)*和(\\ p {Punct})*和(0-9)*和(\\ s)的模式的表示形式是什么,模式的所有char都是大写。

  
      
  • PATTERN {001}

  •   
  • OTHERS PATTERN(002-005)

  •   

编辑: 就在不久之前,我在上面提出了这个问题:

  

(([A-Z])* |(\\ p {PUNCT})* |([0-9])* |(\\为s)*)*

新问题是从某些字符串中获取大写子字符串,该字符串以“|”分隔:

然后,我使用的代码如下所示:

            String theString = "";
            String theUppercase = "";
            Pattern level5Patter = Pattern.compile("(([A-Z])*|(\\p{Punct})*|([0-9])*|(\\s)*)*\\|");
            Matcher level5Matcher = level5Patter.matcher(strFileContent);
            while(level5Matcher.find()){
                String resultLevel5 = level5Matcher.group();
                if(resultLevel5.toUpperCase().equals(resultLevel5)){
                    System.out.println(resultLevel5);
                }
                else{
                    theString=theString+resultLevel5;
                }
            }

子字符串如下所示:

  

此数据的标题总是更新,有时包含数字1.0.0.0.0甚至是PUNCTUATION {}

String源代码如下所示:

  

头部1 |头部1.0 |头部1.0.0 |头部1.0.0.0 |本数据的标题总是更新,有时包含数字1.0.0.0.0甚至是PUNCTUATION {} |第一次数据描述有时包含大写和数字1010和标点符号{} | 01234 |头部1 |头部1.0 |头部1.0.0 |头部1.0.0.1 |本数据的标题总是最新且有时包含数字1.0.0.1.0即使计算|第一次数据描述有时包含大写和数字1010和标点符号{} | 56789 |

提前致谢。

2 个答案:

答案 0 :(得分:2)

创建一个角色类并将所有内容放入您想要的内容

Pattern p = Pattern.compile("^[A-Z0-9\\p{P}\\s]+$");

[A-Z0-9\\p{P}\\s]这是一个字符类,它允许A-Z,0-9,标点符号和空格。

^是字符串开头的锚点

$是字符串结尾的锚点

+是一个允许

的量词

更多的unicode方法将是

^[\\p{Lu}\\p{N}\\p{P}\\s]+$

\\p{Lu}一个大写字母,带有小写变体。

\\p{N}任何脚本中的任何数字字符。

有关详细信息,请参阅here on regular-expressions.info

答案 1 :(得分:0)

我必须承认我并不完全清楚你在问什么。你能尝试改写一下你的问题吗?

假设你试图组合一些字符类,换句话说,你想要一个模式接受任何由字符类'[AZ]','\ p {Punct}中的任何字符序列组成的字符串。 '和'[0-9]',这将变成类似:'([A-Z0-9] | \ p {Punct})*'。将此编码为字符串时要小心双重转义:

Pattern p = new Pattern("([A-Z0-9]|\\p{Punct})*");