Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Dreamweaver中的正则表达式查找/替换-将HTML粘贴为变量?_Html_Regex_Excel_Replace_Dreamweaver - Fatal编程技术网

Dreamweaver中的正则表达式查找/替换-将HTML粘贴为变量?

Dreamweaver中的正则表达式查找/替换-将HTML粘贴为变量?,html,regex,excel,replace,dreamweaver,Html,Regex,Excel,Replace,Dreamweaver,我必须将电子表格数据(名称、图像名称和bio)转换为HTML,因此我在DW中使用RegEx find/replace和变量,这非常简单。问题是其中一列包含一个HTML格式的bio(主要是段落和斜体),而RegEx忽略了这一行,原因超出了我的研究能力 我不想脱衣,然后手动添加HTML再次,所以告诉我的方式 TL;DR:有没有办法将HTML粘贴为正则表达式变量 下面是一些我快速粘贴/格式化Excel到DW的表格数据示例: 詹姆斯·布莱恩·赫尔维格 詹姆斯·布莱恩·赫尔维格 Lorem ipsum

我必须将电子表格数据(名称、图像名称和bio)转换为HTML,因此我在DW中使用RegEx find/replace和变量,这非常简单。问题是其中一列包含一个HTML格式的bio(主要是段落和斜体),而RegEx忽略了这一行,原因超出了我的研究能力

我不想脱衣,然后手动添加HTML再次,所以告诉我的方式

TL;DR:有没有办法将HTML粘贴为正则表达式变量


下面是一些我快速粘贴/格式化Excel到DW的表格数据示例:


詹姆斯·布莱恩·赫尔维格
詹姆斯·布莱恩·赫尔维格
Lorem ipsum dolor sit amet,奉献精英。首先,我们需要暂时的人工呼吸

多洛丽丝,我的生命是一个伟大的生命

蟋蟀吉明尼 蟋蟀 Lorem ipsum dolor sit amet,奉献精英。首先,我们需要暂时的人工呼吸

多洛丽丝,我的生命是一个伟大的生命

下面是“查找”正则表达式:



([^您的问题是
[^您可以使用

<tr>
  <td>.*?</td>
  <td>.*?</td>
  <td>.*?</td>
</tr>

.*?
.*?
.*?
说明:(点)匹配除换行符以外的任何字符。如果需要跨越多行,可以按照Tim的建议使用[\s\s]

*使其查找0个或更多的(点)。使其不情愿,这意味着我们在仍然匹配结束TD标记的情况下尽可能少地抓取字符

由于您的TR和TD标记之间存在空格,我们必须将其包含在正则表达式中。对不起,我应该早点发现这一点!此外,除非我们正在搜索空格,否则我们不能在正则表达式中放置空格,这就是为什么正则表达式看起来像一长串复杂字符的原因。下面是它的外观:

<tr>\s*<td>.*?</td>\s*<td>.*?</td>\s*<td>.*?</td>\s*</tr>
\s*?\s*?\s*?\s*?\s*?\s*
如您所见,我使用了\s表示空白字符,后面跟着*表示0或更多次

由于同一图案重复3次,因此实际上可以使用以下符号进行重复:

<tr>\s*(<td>.*?</td>\s*){3}</tr>
\s*(.*?\s*){3}
重复表示法很好。比如说,您不仅要将表与精确的3个TD进行匹配,还要将表与1到4个TD进行匹配。您可以使用:

<tr>\s*(<td>.*?</td>\s*){1,4}</tr>
\s*(.*?\s*){1,4}

FYI,一位同事刚刚发现了一个很好的替代方法,可以使用Dreamweaver XSLT文件将XML数据动态添加到HTML中,从而在上面的示例中使用正则表达式。我们只需使用一个XML映射的电子表格来导出XML,瞧……内容更新了

一旦设置了电子表格的模式,并使用适当的HTML“重复区域”对XSL文件进行了格式化,就可以顺利进行了

资源:


我想我离亲吻太远了,而且我的冰箱里已经有了一瓶非常好的啤酒(Rothaus Tannenzäpfle,对那些知情的人来说),所以虽然我很感激你的提议,但我不得不拒绝你:)@TimPietzcker我更喜欢好的Chimay或Tripel Karmeliet。Maudite也是一个不错的选择。我已经筋疲力尽了,但不幸的是,你用一个答案击败了我,决定把所有的啤酒都吃光。@TimPietzcker,你,我的朋友,是一个漂亮的人。你为我和一些同事节省了很多时间和挫折。当你用完这些啤酒时,请告诉我昂贵的Belgiums/Pils:)如果我还有两个代表,我会投票给你。前瞻是完全多余的-与正则表达式
*?
没有任何区别。对不起,我没有意识到html标记是正则表达式本身的一部分。我已经编辑了我的答案并测试了它,它是有效的。这是最简单、最容易理解的答案。电话:y、 当计算机执行此正则表达式时,它实际上遵循的过程与Tim建议的正则表达式几乎相同。如果您想了解有关正则表达式的更多信息,我建议@mareoraft,我在上面的示例中尝试了您编辑过的答案,但没有用。如果我要添加[\s\s]在某个地方编码,我不知道在哪里。谢谢你的资源链接!也许我会在那里找到它。点匹配除换行符以外的任何字符,而[\s\s]匹配字面上的任何字符。我注意到一些东西,所以我正在添加另一个编辑。。。
<tr>
  <td>.*?</td>
  <td>.*?</td>
  <td>.*?</td>
</tr>
<tr>\s*<td>.*?</td>\s*<td>.*?</td>\s*<td>.*?</td>\s*</tr>
<tr>\s*(<td>.*?</td>\s*){3}</tr>
<tr>\s*(<td>.*?</td>\s*){1,4}</tr>