首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >连续删除字符串开头和结尾处的数学运算符

连续删除字符串开头和结尾处的数学运算符
EN

Stack Overflow用户
提问于 2015-02-09 10:46:27
回答 1查看 107关注 0票数 3

我有以下字符串:

代码语言:javascript
运行
复制
str1 = "+58*/-47+-2*"
str2 = "++*46+8+*7+2*1"
str3 = "-9*-"

我想要下列产出:

代码语言:javascript
运行
复制
ostr1 = "58*47+2"
ostr2 = "46+8+7+2*1"
ostr3 = "9"

例如:

  • 数学算子是+, - , /, *
  • 当字符串中至少有两个连续的数学运算符时,取第一个。
  • 禁止字符串开头或结尾处的所有连续数学运算符。

到目前为止,我的第三个条件是:

代码语言:javascript
运行
复制
gsub("(.*)[\\+|-|\\*|/]+$", "\\1", gsub("^[\\+|-|\\*|/]+(.*)", "\\1", str1))

看起来不太优雅..。我仍在为第二个条件而奋斗:

代码语言:javascript
运行
复制
gsub("([\\+|-|\\*|/]{1})[\\+|-|\\*|/]+", "\\1", str1)

不管用。

任何建议都欢迎regex杀手提出。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-02-09 10:51:54

你可以通过以下方式进行搜索:

代码语言:javascript
运行
复制
^[-+*/]+|[-+*/]+$|([-+*/])[-+*/]+

并以下列案文取代:

代码语言:javascript
运行
复制
$1 or \\1

代码:

代码语言:javascript
运行
复制
gsub("^[-+*/]+|[-+*/]+$|([-+*/])[-+*/]+", "\\1", str1)

RegEx Demo

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

https://stackoverflow.com/questions/28407929

复制
相关文章

相似问题

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