繁体   English   中英

php正则表达式

[英]php regular expression

我在php字符串中有这个标签:
<input type="submit" name="op" id="edit-submit" value="Log in" class="form-submit ajax-trigger" />
我想替换
<a href="#" onclick="document.user-login.submit();" class="sign-in">sign in</a>

我很确定我需要使用php函数preg_replace但我不确定正则表达式。 是否可以创建一个正则表达式来替换所有<input type="submit" />标记,而不管标记具有哪些附加属性?

尝试以下模式来捕获所描述的所有输入标记。 它将删除标签的其他属性,我认为这是你要求的。

/<input type="submit"[^/]+\/>/

我自己没有测试过,但它应该让你朝着正确的方向前进。 [^ /] +是关键; 它捕获所有不是“/”的字符,直到尾部的“/>”。

这个目标对于正则表达式来说足够简单。 在你的情况下:

 $text = preg_replace('#<input\b[^>]*\s(type="submit")[^>]*>#i',
                      '<a href="#" onclick=".....', $text);

(查看一些正则表达式设计工具以满足未来需求。)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM