PHP:如何使用RegEx在“ - ”周围添加空格

时间:2012-02-10 14:01:47

标签: regex

我需要在文本中添加“ - ”空格(在标签之间,而不是在内部)

例如:

1. <b>some-text</b> ---> <b>some - text</b>
2. <a href="http://site-link">some-text</a> ---> <a href="hhtp://site-link">some - text</a>

所以,不要触摸href链接,只有文字... 我的表达式与链接的attr“href”无法正常工作:

$file = preg_replace('/>(.*?)([^\s\d])-([^\s\d])(.*?)</i', '>$1$2 - $3$4<', $file);

2 个答案:

答案 0 :(得分:1)

试试这个正则表达式:

$file = preg_replace('/(\>[^\-\<]*)-([^\<]*\<)/i', '$1 - $2', $file);

另见this example

答案 1 :(得分:0)

正则表达式是这项工作的错误工具。我会使用DOMDocument遍历DOM并查找包含-个字符的文本节点,并在必要时替换它们。