我需要帮助编写一个将 HTML 字符串转换为有效 XML 标记名称的正则表达式函数。例如:它接受一个字符串并执行以下操作:
- 如果字符串中出现字母或下划线,则保留
- 如果出现任何其他字符,则会将其从输出字符串中删除。
- 如果单词或字母之间出现任何其他字符,则将其替换为下划线。
Ex:
Input: Date Created
Ouput: Date_Created
Input: Date<br/>Created
Output: Date_Created
Input: Date\nCreated
Output: Date_Created
Input: Date 1 2 3 Created
Output: Date_Created
基本上,regex 函数应该将 HTML 字符串转换为有效的 XML 标记。
一些正则表达式和一些标准函数:
function mystrip($s)
{
// add spaces around angle brackets to separate tag-like parts
// e.g. "<br />" becomes " <br /> "
// then let strip_tags take care of removing html tags
$s = strip_tags(str_replace(array('<', '>'), array(' <', '> '), $s));
// any sequence of characters that are not alphabet or underscore
// gets replaced by a single underscore
return preg_replace('/[^a-z_]+/i', '_', $s);
}