我需要一个正则表达式来删除特定字符之前的所有空格。
示例:
删除第一个“- ”之前的所有空格
之前:
My Beautiful Video - Hello darling - 19.10.2015 10:00
之后:
MyBeautifulVideo - Hello darling - 19.10.2015 10:00
最佳答案
您可以使用(*SKIP)(*F)
或捕获组。
preg_replace('~ - .*(*SKIP)(*F)| ~', '', $str);
上述正则表达式控制动词的语法必须类似于,
What_I_want_to_avoid(*SKIP)(*FAIL)|What_I_want_to_match
因此 - .*
部分应匹配从第一个空格连字符空格到最后一个空格的所有字符。现在控制动词 (*SKIP)(*F)
使匹配失败。现在 OR 运算符后面的正则表达式将仅根据剩余的字符串进行匹配。如果您在备用分支中使用 .*
、.*?
,它将不起作用。
或
preg_replace('~( - .*)| ~', '\1', $str);
关于regex - 我需要一个正则表达式来删除特定字符之前的空格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33220384/