PHP - preg_replace 简化吗?
还没有使用正则表达式替换太多,并且不确定我的做法是否是最好的方法。 我正在尝试更改例如:
'(.123.)' OR 123.)' OR '(.123
必须
'.(123).' OR 123).' OR '.(123
是中间的 int 。
preg_replace('/\.\)/', ').',preg_replace('/\(\./', '.(',preg_replace('/(\.[0-9]+\.)|(\.[0-9]+|[0-9]+\.)/', '($0)',$str)));
我上面的代码有效,只是想知道是否有更好的方法来做到这一点
haven't used regex replaces much and am not sure if how I have done this is the best way of doing it.
Im trying to change eg:
'(.123.)' OR 123.)' OR '(.123
to
'.(123).' OR 123).' OR '.(123
must be an int in the middle.
preg_replace('/\.\)/', ').',preg_replace('/\(\./', '.(',preg_replace('/(\.[0-9]+\.)|(\.[0-9]+|[0-9]+\.)/', '($0)',$str)));
the code I have above works, just wondering if there is a better way to do it
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
您能否在两次替换中做更简单的事情,一次替换数字之前的 (.,一次替换数字之后的 .)?
甚至可以一次性完成此操作,但看起来更难看。在这里,我查找前面带有
(.
且可选地后跟.)
的数字,或者可选地前面带有(.
并后跟.)
,然后用.(number).
替换整个批次 - 这具有将.(123
转换为.(123) 的效果.
,您可能想要也可能不想要...Could you do more simply in two replacements, one for (. before a digit and one for .) after a digit?
It's even possible to do this in one go, but it looks uglier. Here I look for a number preceded by
(.
and optionally followed by.)
, or optionally preceded by(.
and followed by.)
, then replace the whole lot with.(number).
- this has the effect of turning.(123
into.(123).
, which you may or may not want...