咨询Eclipse查找替换中为CFCOOKIE标签追加安全属性的正则写法
前置操作步骤
- 打开Eclipse查找替换面板:Windows/Linux快捷键
Ctrl+F,macOS快捷键Cmd+F - 勾选面板中的 Regular Expression 正则选项,根据素材属性是否区分大小写,自行决定是否勾选 Case Sensitive 选项
核心正则配置
注意:Eclipse正则替换使用
$序号引用捕获组,和部分编辑器使用\序号的语法有区别,不要混用
- 查找匹配表达式:
<CFCOOKIE([^>]*?)>
表达式逻辑说明:- 精准匹配
<CFCOOKIE开头的标签起始位置 [^>]*?非贪婪匹配标签内所有不属于闭合尖括号的内容,无论标签包含多少个属性、是否跨行排版,都会在遇到第一个>时停止匹配,不会跨到相邻其他标签造成误匹配- 括号内容为捕获组1,存储标签内除起始标签名、闭合尖括号外的所有属性内容
- 精准匹配
- 替换为表达式:
<CFCOOKIE$1 httponly="yes" secure="Yes">
拼接逻辑:将原有标签结构完整保留,在闭合尖括号前插入指定的两个属性
补充优化(可选)
如果素材中部分CFCOOKIE标签已经存在httponly属性,为了避免重复插入,可以调整查找表达式为:<CFCOOKIE(?![^>]*httponly)([^>]*?)>
调整后逻辑会先校验标签内是否已经存在httponly属性,已存在的标签不会被匹配替换,不会产生重复属性。
效果验证
- 原始输入:
<CFCOOKIE name="JOE" value="2">
替换输出:<CFCOOKIE name="JOE" value="2" httponly="yes" secure="Yes"> - 原始输入:
<CFCOOKIE name="Bill" value="2000" path="/" expires="never">
替换输出:<CFCOOKIE name="Bill" value="2000" path="/" expires="never" httponly="yes" secure="Yes">
内容的提问来源于stack exchange,提问作者CB1004
相关产品推荐
相关产品推荐

