应匹配以下内容:
AAA123
ABCDEFGH123
XXXX123
我能做什么:”。* 123”?
应匹配以下内容:
AAA123
ABCDEFGH123
XXXX123
我能做什么:”。* 123”?
当前回答
.*和.+用于除换行外的任何字符。
双逃离
以防万一,你想要包含新的行,下面的表达式可能也适用于那些需要双转义的语言,如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]+
Test
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
如果您想探究这个表达式,regex101.com的右上角面板上有解释。如果你愿意,你也可以在这个链接中观看,它是如何与一些样本输入匹配的。
RegEx电路
jex。Im可视化正则表达式:
其他回答
实例问题的具体解决方案:-
尝试[A-Z]*123$将匹配123,AAA123, ASDFRRF123。如果你需要至少一个字符在123使用[a - z]+123$。
问题的通解(如何匹配正则表达式中的“任意字符”):
如果您正在寻找任何包含空白的内容,您可以尝试[\w|\ w]{min_char_to_match,}。 如果您正在尝试匹配除空白之外的任何内容,您可以尝试[\S]{min_char_to_match,}。
试试正则表达式{3,}。这将匹配除新行以外的所有字符。
我喜欢以下几点:
[!- ~]
它匹配所有字符代码,包括特殊字符和正常的A-Z, A-Z, 0-9
https://www.w3schools.com/charsets/ref_html_ascii.asp
例如faker.internet.password(20, false, /[!-~]/)
会生成这样的密码:0+>8*nZ\\*-mB7Ybbx,b>
.*和.+用于除换行外的任何字符。
双逃离
以防万一,你想要包含新的行,下面的表达式可能也适用于那些需要双转义的语言,如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]+
Test
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
如果您想探究这个表达式,regex101.com的右上角面板上有解释。如果你愿意,你也可以在这个链接中观看,它是如何与一些样本输入匹配的。
RegEx电路
jex。Im可视化正则表达式:
我不总是用。is表示任意字符。单线模式时异常。\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");
}