每个人,我从昨天起就试图解决这个问题。
包含(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 |
提前致谢。
答案 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})*");