我正在尝试编写一个正则表达式,允许在数字和字符之间使用连字符 (-) 但删除字符之间的连字符并将其替换为 PHP 字符串中的空格。我是正则表达式的初学者不知道如何为此编写正则表达式任何人都可以帮助
这是我需要的,我在 PHP 中有这样的字符串
$string ="Al-Abbas - Manama - 100" or
$string ="100 - Al-Abbas - Manama"
应用正则表达式后我需要的输出必须是这样的
Al Abbas Manama - 100
100 - Al Abbas Manama
还有其他办法吗
最佳答案
你可以使用这个正则表达式:
$string ="Al-Abbas - Manama - 100"
$repl = preg_replace('/\d\h*-\h*(*SKIP)(*F)|-(?!\h*\d)/', ' ', $string);
\d\h*-\h*(*SKIP)(*F)
如果连字符出现在数字后面,则匹配失败(?!\h*\d)
如果连字符旁边有数字,断言将失败
关于php - 允许数字和字符之间连字符但删除字符之间连字符的正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35605272/