我只需要删除特定字符之间的一些空格。这是我的数据:
#1 2 5 1#
# 5 5 3#: 100% #5 55#
#554 #: 23
#559#: 30%
#4 79#: 2 0 0#%
#473#: 20 #47 4#
#4 7 4 43 33 5 5#: 15s
#4 79#: 195%
#473#: 20 # 474#
#475#: 14.5s
我希望删除两个##标记之间的所有空格,这些空格不能用数字分隔,而不能用数字隔开。我的数据应如下所示:
#1251#
#553#: 100% #555#
#554#: 23
#559#: 30%
#479#: 2 0 0#%
#473#: 20 #474#
#474433355#: 15s
#479#: 195%
#473#: 20 #474#
#475#: 14.5s
我目前正在尝试在PHP中使用以下正则表达式来preg_replace那些空格,但是,我尝试过的所有操作均未成功。
(?:[#])(?:([\s])*[0-9]*)*(?:[#])
此正则表达式针对您想要的所有空间。您可以preg_replace
使用空字符串。
(?:#|\G)\d*\K\s+(?=[\d\s]*#)
观看演示
作为第二种选择,由于您的行似乎以开头#
,为避免在之间建立不平衡#
,您还可以使用:
(?m)(?:^#|\G)\d*\K\s+(?=[\d\s]*#)
解释
(?:#|\G)\d*\K\s+(?=[\d\s]*#)
(?:#|\G)
#
#
\G
\G
\d*
*
\K
\s+
+
(?=[\d\s]*#)
[\d\s]*
*
\d
\s
#
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句