Java “如何匹配”;“任何字符”;在正则表达式中?
应匹配以下各项:Java “如何匹配”;“任何字符”;在正则表达式中?,java,regex,Java,Regex,应匹配以下各项: AAA123 ABCDEFGH123 XXXX123 我能做什么:“*123”?使用模式匹配任何字符一次,*匹配任何字符零次或多次,+匹配任何字符一次或多次。可以。这应该行得通 =除换行符外的任何字符 \。=实际的点字符 ?={0,1}=匹配除换行符以外的任何字符零次或一次 *={0,}=匹配除换行符以外的任何字符零次或多次 +={1,}=匹配除换行符以外的任何字符一次或多次 否,*将匹配零个或多个字符。您应该使用与一个或多个匹配的+ 这个表达式可能更适合您:[A-Z]+1
AAA123
ABCDEFGH123
XXXX123
我能做什么:
“*123”
?使用模式
匹配任何字符一次,*
匹配任何字符零次或多次,+
匹配任何字符一次或多次。可以。这应该行得通
=除换行符外的任何字符
=实际的点字符\。
=?
=匹配除换行符以外的任何字符零次或一次{0,1}
=*
=匹配除换行符以外的任何字符零次或多次{0,}
=+
=匹配除换行符以外的任何字符一次或多次{1,}
*
将匹配零个或多个字符。您应该使用与一个或多个匹配的+
这个表达式可能更适合您:
[A-Z]+123
有很多复杂的正则表达式测试和开发工具,但是如果您只想在Java中使用一个简单的测试工具,这里有一个供您使用的工具:
String[] tests = {
"AAA123",
"ABCDEFGH123",
"XXXX123",
"XYZ123ABC",
"123123",
"X123",
"123",
};
for (String test : tests) {
System.out.println(test + " " +test.matches(".+123"));
}
现在您可以轻松地添加新的测试用例并尝试新的模式。享受探索正则表达式的乐趣
另见
将不匹配换行符,除非在编译表达式时传递该标志:
Pattern pattern = Pattern.compile(".*123", Pattern.DOTALL);
Matcher matcher = pattern.matcher(inputStr);
boolean matchFound = matcher.matches();
尝试正则表达式
{3,}
。这将匹配除新行以外的所有字符。示例问题的特定解决方案:-
尝试[A-Z]*123$
将匹配123
,AAA123
,ASDFRRF123
。如果在123
之前至少需要一个字符,请使用[a-Z]+123$
问题的一般解决方案(如何匹配正则表达式中的“任意字符”):
[\w |\w]{min_char\u to_match,}
[\S]{min\u char\u to\u match,}
我工作这并不总是点意味着任何字符。单线模式时出现异常<代码>\p{all}应为
String value = "|°¬<>!\"#$%&/()=?'\\¡¿/*-+_@[]^^{}";
String expression = "[a-zA-Z0-9\\p{all}]{0,50}";
if(value.matches(expression)){
System.out.println("true");
} else {
System.out.println("false");
}
String value=“|”、!\“\$%&/()=?”\\\/*-+\@[]^^{}”;
字符串表达式=“[a-zA-Z0-9\\p{all}]{0,50}”;
if(value.matches(表达式)){
System.out.println(“真”);
}否则{
System.out.println(“假”);
}
我见过的最常见的编码方式是使用字符类,其成员构成所有可能字符集的分区
通常人们把它写成
[\s\s]
(空白或非空白),尽管[\w\w]
,[\d\d]
等都可以。[^]
应该匹配任何字符,包括换行符。[^
字符]
匹配除字符中的字符外的所有字符。如果字符为空,则匹配所有字符
JavaScript示例:
/a[^]*Z/.test("abcxyz \0\r\n\t012789ABCXYZ") // Returns ‘true’.
*
和+
适用于除新行以外的任何字符
双重逃逸
为了以防万一,您可能希望包含新行,以下表达式也可能适用于需要双重转义的语言,如Java或C++:
[\\s\\S]*
[\\d\\D]*
[\\w\\W]*
零次或多次,或
[\\s\\S]+
[\\d\\D]+
[\\w\\W]+
一次或多次
单个转义:
有些语言不需要双重转义,如C#、PHP、Ruby、PERL、Python、JavaScript:
[\s\S]*
[\d\D]*
[\w\W]*
[\s\S]+
[\d\D]+
[\w\W]+
试验
输出
如果您希望探索表达式,它已在的右上面板中进行了解释。如果您愿意,您还可以在中查看,它将如何与一些示例输入匹配
正则表达式电路 可视化正则表达式:
Upvote for the regular-expressions.info链接。这是学习正则表达式和参考的绝佳网站。这是一些非常有用的信息!我假设
会匹配换行符。我很高兴我读到了你的答案,我需要使用它!有时你可能还需要在无法使用正则表达式的上下文中匹配Java正则表达式中的换行符ss Pattern.DOTALL,例如在Eclipse中执行多行正则表达式搜索时,或作为提供正则表达式搜索的任何Java应用程序的用户。基于,您可能需要使用{.,\n\r\u2028\u2029\u0085}
来绝对匹配任何字符(Unicode字符是附加的行终止字符,在Java中不与
匹配),但只要{,\n\r}
就可以用于大多数文本文件。@TheodoreMurdock[\s\s]
是一种常用的匹配任何字符的方法,如果您不能使用DOTALL。如果您想到这一点,请不要使用(?:。\\v)*
,因为这里有.Upvote。OP没有指定,但是添加模式将匹配任何字符,包括OP可能不需要的####123、123123、%$#123。上面@Huusom使用的字符类将使OP只使用可能是有意使用的大写字母字符。此链接显示一个似乎有效的方法-->[^]+表示“不匹配任何字符”,这是一个双负数,可以重新读取为“匹配任何字符”。源-不总是点表示任何字符。单行模式下例外。\p{all}您应该如何将反斜杠包含在此字符列表中?@pipilongstocking-backward-slash是“\\`如何包含新行?”作为参考,from:“JavaScript和VBScript没有使点匹配换行字符的选项。在这些语言中,您可以使用字符类,如[\s\s]匹配任何字符。此字符匹配空白字符(包括换行字符)或非空白字符。由于所有字符都是空白或非空白字符,因此此字符类匹配任何字符。“投票支持这个答案。被接受的答案不能回答问题,但这个答案可以。你介意添加一些代码让我们知道你尝试了什么吗?这里不是已经回答了吗?我喜欢(\W |\W)*
import java.util.regex.Matcher; import java.util.regex.Pattern; public class RegularExpression{ public static void main(String[] args){ final String regex_1 = "[\\s\\S]*"; final String regex_2 = "[\\d\\D]*"; final String regex_3 = "[\\w\\W]*"; final String string = "AAA123\n\t" + "ABCDEFGH123\n\t" + "XXXX123\n\t"; final Pattern pattern_1 = Pattern.compile(regex_1); final Pattern pattern_2 = Pattern.compile(regex_2); final Pattern pattern_3 = Pattern.compile(regex_3); final Matcher matcher_1 = pattern_1.matcher(string); final Matcher matcher_2 = pattern_2.matcher(string); final Matcher matcher_3 = pattern_3.matcher(string); if (matcher_1.find()) { System.out.println("Full Match for Expression 1: " + matcher_1.group(0)); } if (matcher_2.find()) { System.out.println("Full Match for Expression 2: " + matcher_2.group(0)); } if (matcher_3.find()) { System.out.println("Full Match for Expression 3: " + matcher_3.group(0)); } } }
Full Match for Expression 1: AAA123
ABCDEFGH123
XXXX123
Full Match for Expression 2: AAA123
ABCDEFGH123
XXXX123
Full Match for Expression 3: AAA123
ABCDEFGH123
XXXX123