用连字符替换连字符周围的空格

时间:2011-07-25 13:59:58

标签: php regex

我需要(可能)正则表达式(或两个)来执行以下操作:

  • 使用 
  • 替换任何单个字母后的每个空格

我找到了这个question,但是,如果有撇号的单词(就像那里有),之前的正则表达式“认为”撇号之后的's'是单个字母(这不对)。我想要/需要空格仅在单个字母之后,而不是任何其他字母(不是在单词之后,而不是在带有撇号的单词之后)

我希望有人能够在撇号之后更新之前的答案。

谢谢!

2 个答案:

答案 0 :(得分:4)

这是否符合您的期望?

/(?<=^\w) |(?<=\s\w) /

See it here on Regexr

(?<=\s\w)是一个lookbehind,它检查空白之前是否有空格和单词字符。 (?<=^\w)将涵盖单个字母是字符串中第一个字母的情况。

\w还包含_,如果不是这样,您可以定义自己的字符类[a-zA-Z],或者使用unicode stuff \p{L}和修饰符u

答案 1 :(得分:1)

这个怎么样:

preg_replace('/(\S) ', '${1}&nbsp;', $mystring);

\S匹配任何非空白字符。