Java里直接用正则表达式要这样定义
String pattern = "\\w";
因为java里面 \ 本身就是转义字符。
而把表达式放到配置文件里时就要用"\w"了。就因为这个疏忽,多用了两个小时才结束这个Filter。
写个记录,让自己以后少犯这样的错误。
web.xml里的filter配置
<filter>
<filter-name>evaluationContextFilter</filter-name>
<filter-class>
com.gxoa.util.EvaluationContextFilter
</filter-class>
<init-param>
<!-- “on”时为开,其他关闭 -->
<param-name>switch</param-name>
<param-value>on</param-value>
</init-param>
<init-param>
<!-- 不检查的url,url为正则表达式,范围从小到大排序 -->
<param-name>exceptUrls</param-name>
<param-value>
project!toCreateProject.do$;(function|role)!\w*.do$
</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>evaluationContextFilter</filter-name>
<url-pattern>*.do</url-pattern>
</filter-mapping>
com.gxoa.util.EvaluationContextFilter
public class EvaluationContextFilter implements Filter{
Logger logger = Logger.getLogger(this.getClass());
private boolean isSwitchOn = false;
private Pattern[] exceptUrlArr;
public void init(FilterConfig config) throws ServletException{
isSwitchOn = "on".equalsIgnoreCase(config.getInitParameter("switch"));
String regs = config.getInitParameter("exceptUrls");
String [] urls = regs.replace("\n", "").replace("\t","").split(";");
exceptUrlArr = new Pattern[urls.length];
for(int i=0;i<urls.length;i++){
exceptUrlArr[i] = Pattern.compile(urls[i].toString());
}
}
}
分享到:
相关推荐
- 自动化构建工具Gradle:Gradle的构建脚本是用Groovy编写的,这意味着在配置文件中可以利用Groovy的正则表达式功能进行文本处理和匹配。 7. **注意事项** - 在使用`==~`操作符时,需要注意整个字符串必须与正则...
对于源码解析和工具开发,正则表达式同样扮演着不可或缺的角色,比如在解析配置文件、提取日志信息、自动化测试等方面,都能看到其身影。因此,无论是初学者还是经验丰富的开发者,都应该重视并掌握这一强大的工具。
5. **服务器配置**:例如在Apache或Nginx的配置文件中,正则表达式用于定义重写规则。 博客文件`blog-master`通常表示这是一个博客项目的源代码仓库,其中可能包含多个Markdown文件或HTML页面,记录了作者关于正则...
文档中给出了一个简单的示例,使用一个数组来存储不同的文件扩展名,然后遍历这个数组,使用字符串拼接的方式为每种文件格式构建一个正则表达式,并进行测试。 这种方法通过直接拼接字符串和使用数组来存储可能的...
不同类型的正则表达式在语法上略有差异,例如BREs通常需要使用转义字符`\`来启用特殊字符,而EREs则可以直接使用特殊字符,使得表达式更加简洁。 正则表达式的组成包括字符类、数量限定符和位置限定符等。 1. 字符...
Java正则表达式是Java编程语言中的一个强大工具,它用于处理字符串,执行模式匹配和文本搜索。在Java中,正则表达式是通过`java.util.regex`包提供的API来实现的。本项目提供了一组基于Java实现的测试正则表达式源...
### 正则表达式的基础知识 ...- **配置文件解析**:读取和解析如.ini、.conf等配置文件中的键值对。 正则表达式的强大在于其灵活性和表达力,掌握了基本的元字符和构造规则,便可以在多种场景中高效地处理文本数据。
总的来说,正则表达式测试工具是开发过程中不可或缺的辅助工具,它简化了正则表达式的调试过程,提高了开发效率。通过熟练掌握正则表达式及其测试工具,开发者可以更精确地处理文本数据,解决各种复杂的字符串匹配...
"regextester" 文件可能是这个正则表达式测试工具的程序文件或者配置文件。使用时,你需要将其解压缩,然后按照说明运行程序,开始你的正则表达式测试之旅。如果文件包括文档,那么它可能提供了更多关于如何使用测试...
正则表达式与XML是两种在信息技术领域广泛应用的语言和格式,它们各自有着独特的用途和功能。正则表达式,简称正则,是一种强大的文本处理工具,用于匹配、查找、替换和提取字符串模式。XML(eXtensible Markup ...
元字符是正则表达式中的关键组成部分,它们具有特殊的含义。例如: 1. `.` 代表任意单个字符,除了换行符。 2. `*` 表示前面的字符可以出现零次或多次。 3. `+` 表示前面的字符至少出现一次。 4. `?` 表示前面的字符...
- **配置文件解析**:读取配置文件中的键值对。 - **网页抓取**:从HTML或XML文档中提取数据。 ### 正则表达式的组成元素 正则表达式由多个元素组成,每个元素都有其独特的用途: 1. **基础匹配**: - 直接匹配...
正则表达式,全称Regular Expression,是计算机科学中用于匹配字符串的一组字符模式。它们被广泛应用于文本搜索、替换、数据提取和验证等领域。正则表达式由元字符、字符类、量词和分组等元素组成,通过这些元素的...
例如,在处理日志文件、配置文件或其他文本文件时,正则表达式可以帮助我们定位错误信息、提取特定数据或验证数据格式等。掌握正则表达式的使用技巧,对于提高Linux系统管理的效率和准确性具有重要意义。
FolderCure可能是这个工具的主程序或包含相关配置文件,用户可以通过运行这个程序来启动和使用正则表达式验证功能。通过不断实践和熟悉正则表达式,我们可以提高文本处理的效率,解决各种复杂的数据处理问题。
- 在JavaScript中,需要转义特殊字符,例如,如果要在正则表达式中使用`(`、`)`、`[`、`]`等,需要写成`\(`、`\)`、`\[`、`\]`。 - 当在字符串中创建正则表达式时,需要使用双反斜杠`\\`来转义斜杠`/`,例如:`var...
使用正则表达式时需要注意转义字符的使用,比如在需要匹配特殊字符本身的情况下,要在字符前加上反斜杠进行转义。比如\*表示匹配星号字符本身,而不是表示重复。 POSIX正则表达式函数如ereg()和eregi()用于基本的...
在这个示例中,我们将深入探讨如何使用正则表达式来获取小括号 `()`、中括号 `[]` 和花括号 `{}` 中的内容。这对于解析和处理包含嵌套结构的文本数据非常有用,例如JSON对象或配置文件。 首先,我们需要了解正则...
在PHP中,正则表达式的应用非常普遍,本文将详细介绍给定文件中的PHP常用正则表达式及其应用场景。 #### 数字相关的正则表达式 1. **匹配非负整数:** `^\d+$` - **含义:** 从字符串开头到结尾全部由数字组成。 ...