返回
正则表达式教程:匹配 ASCII 码表中的全部特殊字符
正则表达式
2024-02-28 16:08:19
一、正则解释
正则表达式:/[\x21-\x2F\x3A-\x40\x5B-\x60\x7B-\x7E]+/
元字符 | |
---|---|
[ |
左方括号,表示字符范围的开始 |
\x |
表示 Unicode 转义符 |
21 |
ASCII 码中感叹号(!)的十六进制代码 |
- |
表示字符范围 |
2F |
ASCII 码中斜杠(/)的十六进制代码 |
3A |
ASCII 码中冒号(:)的十六进制代码 |
40 |
ASCII 码中 at 符号(@)的十六进制代码 |
5B |
ASCII 码中左方括号([)的十六进制代码 |
60 |
ASCII 码中反引号(`)的十六进制代码 |
7B |
ASCII 码中左大括号({)的十六进制代码 |
7E |
ASCII 码中波浪号(~)的十六进制代码 |
] |
右方括号,表示字符范围的结束 |
+ |
匹配一个或多个前面的表达式 |
二、使用场景
此正则表达式可用于检测和替换文本中的特殊字符,例如:
- 清除输入表单中的非法字符
- 从字符串中移除标点符号
- 验证密码是否包含特殊字符
三、代码示例
JavaScript
const regex = /[\x21-\x2F\x3A-\x40\x5B-\x60\x7B-\x7E]+/;
const text = "[,.,^,&3%";
console.log(regex.test(text)); // true
Java
import java.util.regex.Pattern;
public class SpecialChars {
public static void main(String[] args) {
Pattern pattern = Pattern.compile("[\x21-\x2F\x3A-\x40\x5B-\x60\x7B-\x7E]+");
String text = "[,.,^,&3%";
System.out.println(pattern.matcher(text).find()); // true
}
}
PHP
<?php
$regex = '/[\x21-\x2F\x3A-\x40\x5B-\x60\x7B-\x7E]+/';
$text = "[,.,^,&3%";
if (preg_match($regex, $text)) {
echo "匹配成功";
} else {
echo "匹配失败";
}
?>
Python
import re
regex = r'[\x21-\x2F\x3A-\x40\x5B-\x60\x7B-\x7E]+'
text = "[,.,^,&3%"
if re.search(regex, text):
print("匹配成功")
else:
print("匹配失败")