你好,我有以下代码:
preg_replace('~<form\s*.*?(?:class="(.*?)"|id="(.*?)")?>~i','<form method="post" class="$1" id="$2">', "from html source code");
我想要的是如果表单标签中有class属性或id,那么它们就会被替换。
<form method="post" class="login-css">
所以上面代码的输出将是:
<form method="post" class="login-css" id="">
如果表单标签是这样的:
<form method="post">
然后输出将是:
<form method="post" class="" id="">
答案 0 :(得分:0)
替换
<form method="post"(?: class="(.*?)")?(?: id="(.*?)")?>
使用
<form method="post" class="$1" id="$2">
我有一个工具(RegexBuddy),它可以将它转换为PHP但我不会自己编程到它
$result = preg_replace('/<form method="post"(?: class="(.*?)")?(?: id="(.*?)")?>/', '<form method="post" class="$1" id="$2">', $subject);
我使用以下字符串进行测试并且它可以正常工作
zer <form method="post" class="a" id="b"> zaer zer <form method="post" class="a"> azerzer
在实践中,您可能必须使其不那么严格,并在此处和那里允许空格。