首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >清除坟墓口音中的前导和尾随空格

清除坟墓口音中的前导和尾随空格
EN

Stack Overflow用户
提问于 2016-04-15 09:15:26
回答 1查看 294关注 0票数 1

请有人在这里纠正我的regex,我正在试图移除坟墓口音中的空格。

我的字符串看起来像这个

代码语言:javascript
复制
`table_gis`.` latitude`  = -7.759 AND CONCAT(`table_gis`.smsx,'_',`table_gis`.`   stns   `)  IN ('SPX_0104','SDSX_133') AND

,这是我的regex

代码语言:javascript
复制
preg_replace('/([`])([\s]+)([\w]+)([`])/', "$1$3$4",$str)

我得到了输出

代码语言:javascript
复制
`table_gis`.`latitude`  = -7.759 AND CONCAT(`table_gis`.smsx,'_',`table_gis`.`   stns   `)  IN ('SPX_0104','SDSX_133') AND

--我期望这是输出

代码语言:javascript
复制
`table_gis`.`latitude`  = -7.759 AND CONCAT(`table_gis`.smsx,'_',`table_gis`.`stns`)  IN ('SPX_0104','SDSX_133') AND

我该如何修剪坟墓里的单词呢?谁来指引我

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-04-15 09:19:25

您错过了将空白与\w+的右侧匹配。

您可以在\w+的两边添加可选的空白模式,并使用

代码语言:javascript
复制
`\s*(\w+)\s*`

并替换为`$1`

regex演示

PHP演示

代码语言:javascript
复制
$str = "`table_gis`.` latitude`  = -7.759 AND CONCAT(`table_gis`.smsx,'_',`table_gis`.`   stns   `)  IN ('SPX_0104','SDSX_133') AND"; 
$result = preg_replace('~`\s*(\w+)\s*`~', "`$1`", $str);
echo $result;
// => `table_gis`.`latitude`  = -7.759 AND CONCAT(`table_gis`.smsx,'_',`table_gis`.`stns`)  IN ('SPX_0104','SDSX_133') AND

如果不想匹配任何`no_spaces_here`字符串(例如`table_gis`),可以使用

代码语言:javascript
复制
(?|`\s+(\w+)\s*`|`\s*(\w+)\s+`)

(演示)并替换为与上面相同的模式(即"`$1`")。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36643020

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档