在 Perl 正则表达式中嵌入评估

2023-11-24

所以我正在编写一个快速的 Perl 脚本,它清理一些 HTML 代码并通过 html -> pdf 程序运行它。我希望丢失尽可能少的信息,因此我想扩展文本区域以适应其中当前的所有文本。在我的例子中,这意味着根据文本框中字符串的值将行数设置为计算值。

这是我目前正在使用的正则表达式

$file=~s/<textarea rows="(.+?)"(.*?)>(.*?)<\/textarea>/<textarea rows="(?{ length($3)/80 })"$2>$3<\/textarea>/gis;

不幸的是,Perl 似乎无法识别我被告知的在搜索和替换正则表达式中嵌入 Perl 代码的语法 有 Perl 迷愿意告诉我我做错了什么吗? 问候, 扎克


The (?{...})Pattern 是一个实验性功能,用于在比赛端执行代码,但您希望在比赛端执行代码替代品边。使用/e正则表达式开关:

#! /usr/bin/perl

use warnings;
use strict;

use POSIX qw/ ceil /;

while (<DATA>) {
  s[<textarea rows="(.+?)"(.*?)>(.*?)</textarea>] {
    my $rows = ceil(length($3) / 80);
    qq[<textarea rows="$rows"$2>$3</textarea>];
  }egis;
  print;
}

__DATA__
<textarea rows="123" bar="baz">howdy</textarea>

Output:


<textarea rows="1" bar="baz">howdy</textarea>  
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 Perl 正则表达式中嵌入评估 的相关文章

  • 如何在 grep 中每个文件匹配一次?

    是否有任何 grep 选项可以让我控制匹配总数 但在每个文件的第一个匹配处停止 Example 如果我这样做grep ri include coffee re 我明白了 app coffee express require express
  • 匹配前面没有字符的模式

    我想让我的正则表达式匹配一个模式 前提是它前面没有字符 抑扬顿挫 就我而言 我的正则表达式 w g 用于测试的文本 Test Anotherword 匹配 Test 和 Anotherword 即使后者前面有扬抑符 我试图通过插入来阻止 在
  • Notepad++ RegEx 替换为模式

    我想找到以下模式 Image not found Images IMG 20160519 WA0015 jpg 并替换为一些标记 包括上面文本中的图像名称 例如 a href IMG 20160519 WA0015 jpg img src
  • Perl 标识符中允许使用哪些字符?

    我正在做正则表达式作业 其中一个问题是 使用在线语言参考手册确定 Java Python Perl 和 C 的整数常量和标识符的正则表达式 我不需要关于正则表达式的帮助 我只是不知道 Perl 中的标识符是什么样的 我找到了描述有效标识符的
  • Unix grep 正则表达式包含“x”但不包含“y”

    我需要一个用于 unix grep 的单遍正则表达式 其中包含 alpha 但不包含 beta grep alpha lt gt grep v beta 这里的其他答案展示了一些可以扭曲不同种类的正则表达式来做到这一点的方法 尽管我认为答案
  • 正则表达式中的子字符串应根据长度排序的建议背后的原因是什么?

    最长的第一个 gt gt gt p re compile supermanutd supermanu superman superm super 最短的优先 gt gt gt p re compile super superm superm
  • Scrapy解析javascript

    我的页面上有一个 JavaScript 代码 如下所示 new Shopify OptionSelectors product select product id 185310341 title 10 Design Siyah u0026
  • 一位或两位数字正则表达式

    我有下面的代码 仅当我有 2 位数字时它才有效 如果我有 1 位数字则不起作用 我想在两种情况下工作 一位或两位数 var numberRegex 1 9 0 9 我尝试过类似的方法 但不幸的是不起作用 var numberRegex 1
  • 正则表达式 - 删除两个标点符号之间的空格,但不删除标点符号和字母之间的空格

    我有以下正则表达式用于删除标点符号之间的空格 re sub r s W s r 1 s 它在我的几乎所有测试用例中都运行良好 除了这个 This is a test 为此我需要有 This is a test and get This is
  • 如何在 Perl 中获取用户输入而不等待输入?

    我正在尝试用 Perl 制作一个交互式 shell 脚本 我能找到的唯一用户输入如下 name
  • 转义 re.sub 的 repl 参数

    我想确定repl的论证re sub是转义 因此任何特殊序列如 1不被解释 gt gt gt repl r 1 gt gt gt re sub X repl X X gt gt gt re sub X desired escape funct
  • 带文本板的多行正则表达式

    我不知道如何使文本板执行扩展多行的正则表达式 我尝试使用 perl 语法与 myregex m 和 m 作为修饰符 但这不起作用 我在编辑器中看不到复选框或任何内容来告诉它执行多行操作 有人有主意吗 这是完全可能的 而且简单 你只需使用 n
  • 如何在 Perl 中不阻塞地测试 STDIN?

    我正在编写我的第一个 Perl 应用程序 一个 AOL Instant Messenger 机器人 它与 Arduino 微控制器对话 后者控制一个伺服系统 按下我们系统管理员服务器上的电源按钮 该服务器每 28 小时左右就会随机冻结一次
  • 如何在 python 2.7 中使用 re.UNICODE?

    我正在尝试使用 re UNICODE 标志来匹配可能包含 unicode 字符的字符串 但它似乎不起作用 例如 Python 2 7 12 default Dec 4 2017 14 50 18 GCC 5 4 0 20160609 on
  • 删除重复字符

    我如何删除重复字符 例如删除字母k in cakkkke让它成为cake 执行此操作的一种简单方法是循环遍历字符串的每个字符 如果该字符不是前一个字符的重复 则将字符串的每个字符附加到新字符串 下面是一些可以执行此操作的代码 newStri
  • 用于提取 FDF 数据的 PHP 正则表达式代码

    我正在尝试使用 PHP 和正则表达式解析 FDF 文件 但我就是无法理解正则表达式 我一直在解析文件以生成数组 FDF 1 2 1 0 obj lt lt FDF lt lt Fields lt lt V email protected c
  • 正则表达式表示 hh:mm am/pm 格式的时间

    我需要对学校项目的输入进行严格验证 时间格式为 HH MM am pm 到目前为止 我已经得到了这个正则表达式 01 0 9 0 5 0 9 AaPp Mm 这是一个工作演示 http regexr com 3c9b5 http regex
  • 将匹配的值传递给函数,并替换为返回值

    我如何让 Bash 匹配正则表达式 而不是用常量字符串替换值 而是将匹配的值传递给函数 然后从函数的返回值中获取要替换的值 像下面的伪代码一样 它替换了每一个匹配项 a d 具有相同的字符 但大写 function uppercase ec
  • C# 中的高级替换

    我喜欢用 C 替换 xml 字符串 中的一些属性 示例 XML
  • 在 SQL 中查询行序列

    假设我正在存储events有关联users如下表 其中dt代表事件的时间戳 dt user event 1 1 A 2 1 D 3 1 B 4 1 C 5 1 B 6 2 B 7 2 B 8 2 A 9 2 A 10 2 C 这样我们就可以

随机推荐

  • python如何将css文件解析为键值[关闭]

    Closed 这个问题不符合堆栈溢出指南 目前不接受答案 我有一个像这样的CSS body html aaa aaa h1 h2 bbb bbb h3 h4 h5 ccc ccc 我想解析这个字符串并获得一个有序的字典 或类似的东西 bod
  • 使用 apache poi 读取 xlsx 时主线程中出现 NoSuchMethodError

    我的代码是 import org apache poi poifs filesystem POIFSFileSystem import org apache poi ss usermodel Workbook import org apac
  • 使用c#删除活动目录中的用户

    我已经编写了一些代码 但不起作用 它抛出异常 发生操作错误 代码 gt DirectoryEntry dirEntry new DirectoryEntry LDAP path admin username admin password d
  • GridView - 使用 CSS 友好的控制适配器删除 EmptyDataTemplate 和 EmptyDataText

    正如问题中指出的 EmptyDataTemplate 和 EmptyDataText 在 GridView 中不起作用 using CSS 友好的控制适配器删除将由 EmptyDataTemplate 填充或在 GridView 中的 Em
  • appfuse 与 roo - 你会使用什么

    Appfuse 与 Roo 您会使用什么以及为什么 各自的优点是什么 根据我给的答案服务器端线程在这个问题上 AppFuse 旨在为您的新项目提供单一的初始支架 这与 Maven 原型或 Eclipse 的 新项目 功能类似 您可以在新项目
  • OSError 故障排除:pty 设备不足

    有时 我在调用时会收到 OSError 异常 并显示消息 out of pty devices pty openpty 当我的脚本的一堆实例同时运行时就会发生这种情况 我达到的极限是什么 我该如何解决这个问题 CentOS 5 6 Pyth
  • 用CSS生成箭头线[重复]

    这个问题在这里已经有答案了 我正在尝试生成一条水平直线 中间有一个细分以显示箭头 这个想法是 该行下方显示的内容将提供有关该行上方显示的内容的详细信息 该行应如下所示 我正在尝试使用纯 HTML 和 CSS 无位图图像 生成它 用于字体真棒
  • 如何绕过 Linux“太多参数”限制

    我必须将 256Kb 的文本作为参数传递给 aws sqs 命令 但在命令行中遇到了大约 140Kb 的限制 这个问题在很多地方都有讨论过自 2 6 23 内核起 该问题已在 Linux 内核中解决 但无法让它发挥作用 我在用3 14 48
  • 如何更改默认分支以推送到 Mercurial 中?

    我喜欢在 Mercurial 中创建命名分支来处理可能需要一段时间编码的功能 所以当我推送时我会执行hg push r default确保我只将更改推送到默认分支 然而 必须记住的是一种痛苦 r default每次我执行推送或传出命令时 所
  • @Temporal(TemporalType.DATE) 与 Oracle 12

    在我们的数据库中 我们有多个带有日期字段的实体 Oracle 将每个日期视为相同的 包含日期和时间部分 然而 JPA 实体通过注释 Temporal 进行区分 当我们想省略时间部分时 我们用 Temporal TemporalType DA
  • 在alertDialog中验证EditText

    我正在尝试添加空字段验证EditText on AlertDialog 但即使字段为空后 也不会显示错误消息 而是AlertDialog正在关闭 但是 如果条件运行良好 因为如果任何字段为空 我将无法进行后期操作 这是我的 Java 示例代
  • 如何使用返回的 linq 变量?

    我决定快速了解一下 LINQ 方面的内容 而不是仅仅使用直接的 foreach 循环 但我在让它工作时遇到了一些麻烦 主要是由于我认为的数据类型 到目前为止 我已经得到了这个 var selectedSiteType from sites
  • 页面的官方 Facebook RSS 提要

    许多人已经描述了如何获取 Facebook 页面的 RSS 数据源 例如 http ahrengot com tutorials facebook rss feed 以下 URL 提供了可口可乐页面的 feed 但是 我似乎无法在 face
  • 在 Web 应用程序之间共享 ASP.NET 资源文件

    我有多个项目需要共享资源文件 resx 已提出将资源文件移动到单独的程序集并让 Web 项目引用它的建议 有如何执行此操作的示例吗 我是否创建一个新的类库项目并将 App GlobalResource 文件夹移到其中 我认为这不会起作用 因
  • 如何使用自然的entrySet()顺序迭代HashMap?

    我的地图包含按字母顺序排序的键 当我显示它时 我使用的是entrySet iterator 但我的结果不是按字母顺序排列的 我如何才能按顺序获得结果 不 您的地图不按字母顺序保存元素 你可能有 put 然后按该顺序 但映射没有定义的迭代顺序
  • 您的 Android App Bundle 使用错误的密钥进行签名。确保您的应用程序包使用正确的签名密钥进行签名,然后重试

    如何使用正确的签名密钥对我的 Android 应用程序包进行签名 我为这个问题把头撞在桌子上大约两个小时 当我最终放弃并填写 重置密钥 请求时 我意识到我当前正在尝试将其上传到错误的项目一直以来 因此 第一步 确认您正在尝试上传到正确的项目
  • 流式 HTTP 响应,刷新到浏览器

    我有如下的观点 from django views decorators http import condition def stream for i in range 0 40 yield 1024 yield d i time slee
  • 贫血领域模型:优点/缺点

    我想知道使用贫血域模型的优点和缺点 请参阅下面的链接 福勒文章 由于 贫血领域模型 是反模式 为什么有这么多系统实现它 我认为有几个原因 1 系统的复杂性 在一个简单的系统中 几乎是您在互联网上找到的所有示例和示例代码 如果我想实现 将产品
  • 如何在单击某些按钮时重新加载我的 UIViewController?

    我正在开发一个 iPhone 应用程序 我有一个UIViewController类中存在一些封面流动画 根据设计 我的视图顶部有一些 5 个按钮 每个按钮都有一个IBAction单击按钮的方法我需要显示具有不同数据的不同组的封面流 并且封面
  • 在 Perl 正则表达式中嵌入评估

    所以我正在编写一个快速的 Perl 脚本 它清理一些 HTML 代码并通过 html gt pdf 程序运行它 我希望丢失尽可能少的信息 因此我想扩展文本区域以适应其中当前的所有文本 在我的例子中 这意味着根据文本框中字符串的值将行数设置为