如何用正则绕过 preg_matchh_all匹配除html标签之外的文本?

假设网页内容如下:{eyou:arclist orderby='sort_order' row='8' subday='30' titlelen='42'} {$field.title} {/eyou:arclist} {eyou:sql sql='xxxxxxxx'} 不支持sql标签 {/eyou:sql } {eyou:arclist orderby='sort_order' row='8' subday='30' titlelen='42'}
{$field.title}
{$field.typename}
{/eyou:arclist}匹配每一个{eyou:arclist}和{/eyou:arclist}之间的内容,暂时不考虑arclist会嵌套的问题。首先想到的正则是这样写的:preg_match_all( '/{eyou:sql([^\}]*)}(.*?){\/eyou:sql}/i', $string, $matches ); echo "
";
print_r( $matches);
echo '
';但运行不了,经网上搜寻资料后改成如下写法后即可:preg_match_all( '/{eyou:sql([^\}]*)}([\s\S]*?){\/eyou:sql}/i', $string, $matches ); echo "
";
print_r( $matches);
echo '
';理由很简单,回头复习一上正则表达示中【.】、【\s】和【\S】就知道了,当([\s\S]*)结合在一起时,表示比(.*)包含的字符还要多久,可以说是包含任意字符。【.】匹配除 "\n" 之外的任何单个字符。要匹配包括 '\n' 在内的任何字符,请使用象 '[.\n]' 的模式。【\s】匹配任何空白字符,包括空格、制表符、换页符等等。等价于 [ \f\n\r\t\v]。【\S】匹配任何非空白字符。等价于 [^ \f\n\r\t\v]。附上html普通标签示例:
匹配的是每一个之间的内容(当然tr里面有很多内容,这里没有列出来),暂时不考虑tr会嵌套的问题。preg_match_all( '/]*([\s\S]*?)<\/tr>/i', $string, $matches ); echo "
";
print_r( $matches);
echo '
'; }

分类专栏
您愿意向朋友推荐“博客详情页”吗?
强烈不推荐
不推荐
一般般
推荐
强烈推荐
提交
成就一亿技术人!
hope_wisdom 发出的红包
实付元使用余额支付
点击重新获取
钱包余额
0
抵扣说明: 1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。余额充值
}

代码合并
用户也可以输入一个字符串或者正则表达式,只有匹配的分支才会被删除。完整的正则表达式支持请参见: https://docs.oracle.com/javase/8/docs/api/java/util/regex/Pattern.html 。正则表达式在线验证工具:...
管理数据分类
正则表达式:在输入框中输入正则表达式。例如您需要匹配所有名称中带有test,则正则表达式定义为 test.*。识别阈值:只有内容匹配率超过识别阈值,该规则才会被认为是有效识别,进入该字段的识别结果中比较。按字段名称扫描 根据元数据中的...
云解析域名格式匹配指定正则表达式
云解析DNS中的域名匹配指定的正则表达式,视为“合规”。应用场景 对DNS命名进行规范化的命名,便于统一进行管控,确保安全可控。风险等级 默认风险等级:低风险。当您使用该规则时,可以按照实际需求变更风险等级。检测逻辑 云解析DNS中的...
正则刷新说明
用户可以在刷新任务中提交含有正则表达式的URL,阿里云 CDN 会对匹配该正则表达式的所有URL进行批量刷新,这样可以更有针对性地刷新URL。当您的 刷新类型 选择 正则 时,可以提交含有正则表达式的URL,对符合该表达式的URL进行大批量刷新。...
正则刷新说明
用户可以在刷新任务中提交含有正则表达式的URL,阿里云 DCDN 会对匹配该正则表达式的所有URL进行批量刷新,这样可以更有针对性地刷新URL。当您的 刷新类型 选择 正则 时,可以提交含有正则表达式的URL,对符合该表达式的URL进行大批量刷新...
OSS存储空间名称符合正则表达式
OSS存储空间的名称符合参数设置的正则表达式格式,视为“合规”。应用场景 IT管理(例如:权限管理、分账等)会依赖资源名称进行资源分类。检查OSS存储空间名称可及时发现不符合要求的资源。风险等级 默认风险等级:低风险。当您使用该规则...
资源标签匹配指定正则表达式
关联的资源类型下实体资源标签存在匹配指定的正则表达式的键值对,视为“合规”。支持输入一组标签键值正则表达式。应用场景 标签可以用于权限隔离、账单划分和自动化运维等常见运维场景。该规则支持正则表达式的键值对,适合对标签格式有...
资源名称符合指定正则要求
资源名称匹配参数指定的正则表达式,视为“合规”。应用场景 对资源进行规范化的命名,便于对资源进行日常管理。风险等级 默认风险等级:低风险。当您使用该规则时,可以按照实际需求变更风险等级。检测逻辑 资源名称匹配参数指定的正则...
如何设置哪些关键字不能用作邮箱密码?
正则表达式:输入不允许成员设置为密码的正则表达式规则,输入多个关键字,关键字之间请换行区隔,校验时不区分大小写。默认密码规则:密码长度8-64字符。须同时包含大写字母、小写字母、数字、特殊字符中的任意三种。密码不能包含邮箱账号...
正则表达式函数
本文介绍正则表达式函数的语法规则,包括参数解释、函数示例等。函数列表 类型 函数 说明 值提取函数 regex_select 根据正则表达式提取符合条件的值。regex_findall 根据正则表达式获得符合条件的所有值列表。匹配判断 regex_match 判断...
正则表达式
本文介绍正则表达式的匹配方式以及特殊字符的转义处理。完全匹配 正则表达式的值与字符串完全一致,则是完全匹配。例如 1234 与 \d+完全匹配。有些函数支持部分匹配,您可以在开头与结尾添加^与$将部分匹配的场景变成完全匹配。例如正则...
ValueTransferRule
使用正则表达式匹配到字符串后,将字符串转换为String、Integer或者Double类型。数据结构 message ValueTransferRule { required string regex=1;optional VariantType cast_type=2;} 名称 类型 是否必选 描述 regex string 是 正则表达式...
模式匹配
substring('foobar' from '#"o_b#"%' for '#')NULL POSIX正则表达式 正则表达式匹配操作符表列出了所有可用于 POSIX 正则表达式模式匹配的操作符。正则表达式匹配操作符 text~text→boolean 字符串匹配正则表达式,大小写敏感 'thomas' '.*...
配置域名和路径的转发策略
转发条件的域名配置规则 域名配置规则支持精准域名、通配符域名和正则表达式域名。关于如何添加转发策略,请参见 添加转发策略。域名配置规则 说明 精准匹配及通配符 匹配说明 精准匹配:请求的域名和设定的域名需完全一致。通配符匹配:...
过滤器
构造SingleColumnValueRegexFilter,格式为“列名,正则规则,比较符,比较值”。SingleColumnValueRegexFilter filter=new SingleColumnValueRegexFilter("Col1", regexRule,SingleColumnValueRegexFilter.CompareOperator.GREATER_THAN, ...
配置域名和路径的转发规则
重写和重定向中路径的增强配置规则 转发条件的路径配置正则表达式后,转发动作中的重写和重定向的路径支持正则表达式替换。关于如何添加转发规则,请参见 添加转发规则 说明 转发条件的路径正则配置规则,请参见 转发条件的路径配置规则。...
代码源触发
代码源触发 本文介绍如何配置...当代码源触发事件发生时,只有代码路径过滤规则下的代码发生更新才可以触发流水线运行,填写过滤条件支持正则表达式。例如:过滤条件为 auth-srv/.* 时,仅当auth-srv目录下的代码有更新时才会触发流水线运行。
进阶功能
正则表达式同样用于批量的文本匹配,在静态页面的源码部署过程中,使用正则表达式对到来的请求进行过滤和筛查,对不符合要求的文件请求进行过滤。示例如下: 放行所有请求:/仅放行 src 目录下的所有文件:^/src/.*仅放行.html 、.css、.js...
过滤日志
日志字段的值完全匹配 Include 中的正则表达式,且不匹配 Exclude 中的正则表达式时,日志才会被采集,否则直接丢弃。参数 类型 是否必选 说明 Include JSON Object 否 Key为日志字段,Value为该字段值匹配的正则表达式。键值对之间为与...
管理动态脱敏白名单
选中 自定义 后,请输入正则表达式匹配数据表,例如:您需要匹配所有名称中带有test的数据表,则正则表达式定义为.*test.* 生效时段 自定义动态脱敏白名单的生效时段。生效状态 选择是否开启动态脱敏白名单。单击 确定,完成动态脱敏白名单...
过滤器
构造SingleColumnValueRegexFilter,格式为“列名,正则规则,比较符,比较值”。SingleColumnValueRegexFilter filter=new SingleColumnValueRegexFilter("Col1", regexRule,SingleColumnValueRegexFilter.CompareOperator.GREATER_THAN, ...
请求分组管理
正则表达式:指标准正则表达式,表示该分组规则对符合该正则表达式的请求有效。例如以下正则表达式:^www*:表示所有以www开头的字符串。[a-zA-Z0-9][-a-zA-Z0-9]{0,62}(\.[a-zA-Z0-9][-a-zA-Z0-9]{0,62})+\.?符合域名格式得到匹配,例如...
RDS安全
RDS实例ID:待监控的RDS实例ID(支持正则表达式)。默认值.* 表示监控阿里云账号下的所有RDS实例。数据库名称:待监控的数据库名称(支持正则表达式)。默认值.*,表示监控阿里云账号下的所有数据库。外部配置 无 消除方法 检查出现慢SQL的...
管理本地日志的数据接入任务
您可以手动输入正则表达式,也可以根据 示例日志 自动生成正则表达式。自动生成正则表达式的方法如下:在 示例日志 中输入日志示例。单击 确定输入。在 示例日志 中选中待解析的字段,单击 生成正则。日志抽取结果 本地日志数据的抽取结果...
CreatePushRule-创建推送规则
提交说明规则,extraMessage传入检查的正则表达式 提交邮箱规则,extraMessage传入检查的邮箱正则表示 禁止强制推送,extraMessage传入"disabled"检查作者规则,extraMessage传入"on",若不需要则不传值 检查提交人规则,extraMessage传入...
事件检查函数
正则匹配 e_search('content~="正则表达式"')#正则匹配。数字 e_search('count: [100,200]')#>=100 and('count:[*,200]')# e_search('count:[200,*]')#>=200 e_search('age>=18')#>=18 e_search('age 18')#>18#使用关系运算符 e_search(...
UpdatePushRule-更新推送规则
提交说明规则,extraMessage传入检查的正则表达式 提交邮箱规则,extraMessage传入检查的邮箱正则表示 禁止强制推送,extraMessage传入"disabled"检查作者规则,extraMessage传入"on",若不需要则不传值 检查提交人规则,extraMessage传入...
概述
这些函数用于为正则表达式指定的模式搜索字符串,且返回在字符串中模式的发生信息。这个模式应该为POSIX式的正则表达式。REGEXP_COUNT REGEXP_INSTR REGEXP_SUBSTR 更多关于组成POSIX式的正则表达式的信息,请参见 核心文件网址。
字段操作函数
关于正则表达式的更多信息,请参见 正则表达式。至少需要配置一个日志字段。regex Boolean 否 如果设置为False,表示不使用正则表达式进行匹配。当不配置该参数时,系统默认取值为True。返回结果 返回删除后的日志。函数示例 如果 content ...
正则表达式
InfluxQL支持在以下场景中使用正则表达式:在 SELECT 子句中的field key和tag key。在 FROM 子句中的measurement。在 WHERE 子句中的tag value和字符串类型的field value。在 GROUP BY 子句中的tag key。目前,InfluxQL不支持在 WHERE 子句...
REGEXP_COUNT
更多正则表达式编写规范,请参见 正则表达式规范。pattern 为空串或其他类型时返回报错。start_position:可选。BIGINT类型常量,必须大于0。其他类型或值小于等于0时返回报错。不指定时默认为1,表示从 source 的第一个字符开始匹配。返回...
错误编码:HSF-0022
问题描述 启动HSF应用时,hsf.log 日志文件中出现以下错误:[Grouping Rule]xxx error message.问题原因 配置的动态归组规则格式错误或者不合法。解决方案 请检查归组规则...服务名称列表中的正则表达式合法。适用于 企业级分布式应用服务EDAS
REGEXP_SUBSTR
STRING类型常量或正则表达式。待匹配的模型。更多正则表达式编写规范,请参见 正则表达式规范。start_position:可选。其他BIGINT常量,必须大于0。不指定时默认为1,表示从 source 的第一个字符开始匹配。occurrence:可选。BIGINT常量,...
正则式函数
使用正则式函数提取字符串中的单引号(')时,需要在正则表达式中再添加一个单引号(')进行提取。具体示例,请参见 regexp_extract函数(示例3)。regexp_extract_all函数 regexp_extract_all函数用于提取目标字符串中符合正则表达式的子...
OSS流量安全
您还可以使用正则表达式.* 进行配置,例如156133.*,表示监控以156133开头的阿里云账号。默认值为.*,表示监控审计服务下配置的所有阿里云账号。Bucket名称 需要监控的OSS Bucket名称(支持正则)。您可以使用正则表达式.*进行配置。默认值...
NAS数据安全
您还可以使用正则表达式.* 进行配置,例如156133.*,表示监控以156133开头的阿里云账号。默认值为.*,表示监控审计服务下配置的所有阿里云账号。Volume名称 需要监控的Volume名称(支持正则)。您可以使用正则表达式.*进行配置。默认值为.*...
API网关流量安全
API名称:待监控的API名称(支持正则表达式)。默认值.*,表示监控所有API。外部配置 无 消除方法 检查服务端平均延时过高的API是否存在异常。前提条件 确保已在日志审计服务中的 审计配置>云产品接入>全局配置 中打开API网关 访问日志 的...
K8s流量安全
您还可以使用正则表达式.* 进行配置,例如156133.*,表示监控以156133开头的阿里云账号。默认值为.*,表示监控审计服务下配置的所有阿里云账号。K8s集群名称 需要监控的K8s集群名称。您可以使用正则表达式.*进行配置。默认值为.*,表示监控...
K8s安全
K8s集群名称:待监控的K8s集群名称(支持正则表达式)。默认值.* 表示监控该阿里云账号下的所有K8s集群。外部配置 无 消除方法 检查Warning事件数过多的K8s集群是否存在异常。前提条件 确保已在日志审计服务中的 审计配置>云产品接入>全局...
SLB流量安全
SLB实例名称:待监控的SLB实例名称(支持正则表达式)。默认值.* 表示监控您操作账号绑定的所有SLB实例。外部配置 无 消除方法 检查响应报文长度异常点过多的负载均衡实例是否存在异常。前提条件 确保已在日志审计服务中的 审计配置>云产品...}

我要回帖

更多关于 正则绕过 preg_match 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信