UiPath中使用正则表达式识别红色字体的Animal/Bird
解决UiPath中用正则识别红色字体的Animal/Bird问题
问题分析
你之前的正则<font(?=color=red)+(?=Animal|Bird)无效的核心原因:两个正向预查是在同一位置做匹配,但Animal/Bird并不在font标签的位置里,而是在标签后续的嵌套内容中;同时你没考虑标签可能存在额外属性的情况,也没处理标签间的嵌套结构。
解决方案正则表达式
适配带任意额外属性的font/span标签的正则如下:
<font[^>]*color\s*=\s*(["']?)red\1[^>]*>.*?<span[^>]*>.*?(Animal|Bird).*?</span>.*?</font>
正则各部分拆解
<font[^>]*:匹配font标签开头,[^>]*允许标签内存在任意额外属性(比如style/id等)color\s*=\s*(["']?)red\1:精准匹配color属性值为red:\s*兼容属性名和值之间的任意空格(比如color = red)(["']?)捕获可选的单/双引号,\1反向引用保证前后引号一致(避免误匹配color="red'这类无效格式)
[^>]*>:匹配font标签的闭合部分.*?:非贪婪匹配标签间的任意内容(防止跨多个标签匹配)<span[^>]*>:匹配带任意额外属性的span标签.*?(Animal|Bird):非贪婪匹配到目标文本Animal或Bird,并通过分组捕获该文本.*?</span>.*?</font>:匹配闭合的span和font标签
UiPath使用步骤
- 添加
Matches活动到流程中 - 将上述正则填入
Pattern属性 - 把待匹配的HTML文本放入
Input属性 - 匹配结果里,每个匹配项的
Groups[1].Value就是你要提取的Animal或Bird文本
适配场景示例
以下带额外属性的HTML结构都能被正确识别:
<font style="margin:5px" color = red><span class="text-bold"> Animal</span></font><font id="test" color='red'><span> Bird</span></font>
内容的提问来源于stack exchange,提问作者Aditya V
相关产品推荐
相关产品推荐

