替换两个单词之间可能有一个或多个任何类型的空格
我是正则表达式的新手,并且在看似简单的情况下遇到了困难。
我需要将“foo bar”替换为“fubar”,其中 foo 和 bar 之间有任意数量和种类的空白。
无论如何,我使用 php 的 eregi_replace() 来完成此操作。
先谢谢您的帮助。
I'm a newcomer to regular expressions, and am having a hard time with what appears to be a simple case.
I need to replace "foo bar" with "fubar", where there is any amount and variety of white space between foo and bar.
For what it's worth, I'm using php's eregi_replace() to accomplish this.
Thanks in advance for the help.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(5)
为了确保在
foo
和bar
上进行整个单词匹配,添加单词边界至关重要。\s+
将匹配一个或多个空格。代码:(演示)
输出:
To ensure that you are making whole word matches on
foo
andbar
, it is critical to add word boundaries.\s+
will match one or more whitespaces.Code: (Demo)
Output:
我也更喜欢
preg_replace
,但为了完整起见,这里是ereg_replace
:打印“fubar”
I also prefer
preg_replace
, but for completeness, here it is withereg_replace
:that prints "fubar"
试试这个:
\s 是任何空白字符的元字符。
Try this:
\s is the metachar for any whitespace character.
我不确定 eregi_replace 语法,但你想要这样的东西:
I'm not sure about the
eregi_replace
syntax, but you'd want something like this:...=
preg_replace
(' /foo\s+bar/', 'fubar', ...);
... =
preg_replace
('/foo\s+bar/', 'fubar', ...);