1

你好

我有一个应用程序,用户可以在其中粘贴他们的嵌入代码。在显示时,我想将嵌入代码的高度和宽度更改为我选择的固定值。你能告诉我在嵌入代码中查找宽度和高度的正则表达式吗?宽度=“300”高度=“500”。我希望能够完全获得这两个值,以便可以替换它们。

谢谢

4

3 回答 3

1

正则表达式根本不擅长解析 HTML(请参阅您能否提供一些示例,说明为什么用正则表达式解析 XML 和 HTML 很困难?为什么)。您需要的是一个 HTML 解析器。请参阅您能否提供一个使用您最喜欢的解析器解析 HTML 的示例?对于使用各种解析器的示例。

您可能对与 JavaScript 相关的两个答案感兴趣:jQueryDOM

于 2009-05-26T05:00:56.843 回答
1

以下示例考虑了排序、使用了哪些引号以及人们是否输入了空格

直接替换:

embeddedString = embeddedString.replace(/(width\s*=\s*["'])[0-9]+(["'])/ig, $1 + yourWidth + $2);
embeddedString = embeddedString.replace(/(height\s*=\s*["'])[0-9]+(["'])/ig, $1 + yourHeight + $2);

或转换宽度:

embeddedString = embeddedString.replace(/width\s*=\s*["']["']/ig, function($0, $1)
{
    return $1 * 2;
});

如果你真的想删除整个东西,但使用值:

var originalWidth;
var originalHeight;
embeddedString = embeddedString.replace(/(?:width|height)\s*=\s*["']([0-9]+)["']\s*(?:width|height)\s*=\s*["']([0-9]+)["']/ig, function($0, $1, $2, $3, $4)
{
    // $0 = original string
    // $1 = either 'width' or 'height'
    // $2 = the value of width or height, depending on above
    // $3 = either 'width' or 'height'
    // $4 = the value of width or height, depending on above
    // here you might want to set another value, eg:
    originalWidth = $2;
    return "";
});
于 2009-05-26T04:23:28.137 回答
0

这个是这样做的:

width="(.*?)" height="(.*?)"

并获取第一个和第二个值。您使用什么语言?实现可能会有所不同。

在 PHP 中:


     $pattern = '/width="(.*?)" height="(.*?)"/';
     $subject = 'width="500" height="300"';

     preg_match($pattern, $subject, $matches);

     print_r($matches);

于 2009-05-26T04:10:07.667 回答