【问题标题】:replace number+string with string+number (using regex)用字符串+数字替换数字+字符串(使用正则表达式)
【发布时间】:2015-02-08 20:56:53
【问题描述】:

我在支持正则表达式的高级文本编辑器中使用搜索和替换。

现在我想替换 ##,##--##,##(其中##,##代表任意数字)

任何帮助我需要使用什么搜索和替换表达式来实现这一点?

例如\d- 只会替换 - 本身。

【问题讨论】:

  • 想知道哪个“高级文本编辑器”?
  • 你能发布一些替换前后的行示例吗? (“任何数字”非常模糊。我假设您确实希望将1- 更改为-1,并且希望将one- 更改为-one,但是有很多情况我不知道你是否希望他们改变。)
  • @ruakh 抱歉没有提到我正在搜索列,所以我只处理数字。 (我的意思是说任意数量的数字)英语不好 - 没有母语人士;)无论如何,cristobalitos 解决方案都成功了

标签: regex string search replace numbers


【解决方案1】:

不确定高级文本编辑器上的替换语义是什么,但您可能希望使用分组来进行替换。类似的东西

(\d+)(,?)(\d+)-

将匹配模式并假设像 $1 这样的东西匹配组(括号之间的位),然后

-$1$2$3

$2 匹配(我猜是可选的)',' 就足够了。

【讨论】:

  • 尽管您的正则表达式将, 标记为可选,但它需要在它之前至少一位数字并且在它之后至少一位数字,其效果是它至少需要两位数,即使没有逗号。我怀疑这是故意的。另外——没有必要拥有三个单独的捕获组。将(\d+,?\d+)- 替换为-$1 将具有相同的效果。
猜你喜欢
  • 2012-04-26
  • 1970-01-01
  • 1970-01-01
  • 2013-01-21
  • 2012-11-07
  • 2015-02-27
  • 1970-01-01
相关资源
最近更新 更多