0

不幸的是,由于计划不周,我需要逐个字段地编辑一个巨大的 html 表单。但由于它只是查找和替换,我认为我可以使这个过程更快。所以......所有的领域看起来或多或少是这样的:

<td align="left" width="30%">Incoming date:</td>
<td align="left">
<input name="inc_date" class="frmfixededit" size="20"></td>
</tr>
....
<td align="left" width="30%">Name:</td>
<td align="left">
<input name="name" class="frmfixededit" size="20"></td>
</tr>

我想做的就是把它改成这样:

<td align="left" width="30%">Incoming date:</td>
<td align="left">
<input name="inc_date" <?php if ($u==TRUE) echo "value='$row['inc_date']'"; ?> class="frmfixededit" size="20"></td>
</tr>
....
<td align="left" width="30%">Name:</td>
<td align="left">
<input name="name" <?php if ($u==TRUE) echo "value='$row['name']'"; ?> class="frmfixededit" size="20"></td>
</tr>

关于我如何做到这一点的任何建议?我不知道如何匹配

谢谢

4

2 回答 2

3

在您选择的 IDE 中,使用查找模式执行正则表达式查找和替换:

<input name="(.*)" class="(.*)" size="20">

并替换模式:

<input name="$1" <?php if ($u==TRUE) echo "value='$row['$1']'"; ?> class="$2" size="20">

刚刚在 Textmate 为我工作。

于 2012-09-14T12:03:14.483 回答
2

这个怎么样:

$result = preg_replace(
    '/<input name="  # Match start of tag
    ([^"]+)        # Match and capture the name
    "              # Match closing quote
    (.*)           # Match and capture rest of the line/x', 
    '<input name="\1" <?php if ($u==TRUE) echo "value=\'$row[\'\1\']\'"; ?>\2', $subject);
于 2012-09-14T12:01:18.183 回答