Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/363.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
java模式中的字符串大写_Java_Regex_String - Fatal编程技术网

java模式中的字符串大写

java模式中的字符串大写,java,regex,string,Java,Regex,String,各位,从昨天起我就一直在努力解决这个问题 包含(A-Z)*和(\\p{Punct})*和(0-9)*和(\\s)的模式的表示形式是什么,模式的所有字符都是大写的 i、 e 模式{001} 其他模式(002-005) 编辑: 就在刚才,我对上面的问题有了这样的回答: ([A-Z])*|(\\p{Punct})*|([0-9])*|(\\s)*)* 新问题是从以“|”分隔的字符串中获取大写子字符串: 然后,我使用的代码如下所示: String theString = ""

各位,从昨天起我就一直在努力解决这个问题

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

i、 e

  • 模式{001}

  • 其他模式(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;
                }
            }
子字符串如下所示:

            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甚至标点{}

字符串源如下所示:

标题1 |标题1.0 |标题1.0.0 |标题1.0.0.0 |此数据的标题始终为大写,有时包含数字1.0.0.0,甚至标点{}|第一个数据描述有时包含大写和数字1010以及标点{}|01234 | Head 1 | Head 1.0 | Head 1.0.0 | Head 1.0.0.1 |此数据的标题始终为大写,有时包含数字1.0.0.1.0偶数标点|第一个数据描述有时包含大写和数字1010以及标点{124}56789|


提前谢谢。

我必须承认,我并不完全清楚你在问什么。你能试着重新措辞你的问题吗

假设您正在尝试组合一些字符类,换句话说,您需要一个模式,该模式接受由字符类“[a-Z]”、“\p{Punct}”和“[0-9]”中的任何字符序列组成的任何字符串,这将类似于:“([a-Z0-9]|\p{Punct})*”。将其编码为字符串时,请注意双重转义:

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

创建一个角色类并放入您希望允许的所有内容

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}
任何脚本中的任何类型的数字字符


有关更多信息,请参见

更新后,问题并不清楚。如果你有一个新问题,那么问一个新问题,不要把它添加到你的旧问题中,但我不确定你的新问题是否与前一个问题有很大不同。同样,如果您有自己的答案,请将其添加为答案,而不是添加到问题中(这里您不需要,Jans的答案类似)。