不幸的是,由于规划不当,我需要逐个字段地编辑一个巨大的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>
关于如何实现这一目标的任何建议?我不知道如何匹配
由于
答案 0 :(得分:3)
在您选择的IDE中执行Regex Find&amp;替换为查找模式:
<input name="(.*)" class="(.*)" size="20">
并替换模式:
<input name="$1" <?php if ($u==TRUE) echo "value='$row['$1']'"; ?> class="$2" size="20">
在Textmate中为我工作。
答案 1 :(得分: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);