我需要(可能)正则表达式(或两个)来执行以下操作:
我找到了这个question,但是,如果有撇号的单词(就像那里有),之前的正则表达式“认为”撇号之后的's'是单个字母(这不对)。我想要/需要空格仅在单个字母之后,而不是任何其他字母(不是在单词之后,而不是在带有撇号的单词之后)
我希望有人能够在撇号之后更新之前的答案。
谢谢!
答案 0 :(得分:4)
这是否符合您的期望?
/(?<=^\w) |(?<=\s\w) /
(?<=\s\w)
是一个lookbehind,它检查空白之前是否有空格和单词字符。 (?<=^\w)
将涵盖单个字母是字符串中第一个字母的情况。
\w
还包含_
,如果不是这样,您可以定义自己的字符类[a-zA-Z]
,或者使用unicode stuff \p{L}
和修饰符u
答案 1 :(得分:1)
这个怎么样:
preg_replace('/(\S) ', '${1} ', $mystring);
\S
匹配任何非空白字符。