我需要一些帮助,我有一个字符串,如下所示:
$p__________________________________________________________________________________________________________________________________________, &$s___________________________________________________________________________________________________________________________________________, &$k____________________________________________________________________________________________________________________________________________, &$nft_____________________________________________________________________________________________________________________________________________)
我想知道是否可以使用正则表达式将其转换为:
$p_, &$s_, &$k_, &$nft_)
这基本上是删除了所有的(所以他们没有具体的数量,但他们至少有1个(程序下划线,并用1个下划线代替它们。
我尝试过以下模式,但没有成功:
preg_replace('#('$[a-z]{1,3})[_]+#', '$1', $string);
PS:之所以首选preg_replace(regex((尽管我知道它并不总是100%正确(,是因为它比使用常规字符串替换函数更精确。
感谢并感谢所有的帮助。
preg_replace('/_+/', '_', $string);
考虑到这么简单的事情,您会从strreplace((中获得更好的性能。
您可以尝试使用"str_replace'"将_替换为空格,然后在右侧修剪空格!然后在字符串末尾添加一个_。对不起,我不知道该怎么办!imo这比regex 快
您走在正确的轨道上,只是忘记了变量后面的_
。
如果你需要一个锚-
''$letters锚点:带$1
的#('$[a-z]{1,3}_)_+#
字母锚:带$1
的#([a-z]_)_+#
任何锚点:#((?:^|[^_])_)_+#
与$1