java模式中的字符串大写
各位,从昨天起我就一直在努力解决这个问题 包含(A-Z)*和(\\p{Punct})*和(0-9)*和(\\s)的模式的表示形式是什么,模式的所有字符都是大写的 i、 ejava模式中的字符串大写,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 = ""
- 模式{001}
- 其他模式(002-005)
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的答案类似)。