首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Regex多模式替换

Regex多模式替换
EN

Stack Overflow用户
提问于 2014-07-16 04:36:55
回答 1查看 78关注 0票数 2

寻找regex表达式(for php)多次替换模式,而不影响余数。实际需要的替换是反转某些数字,将10-1改为1-10,即数字为整数(可能大于1位数)的"number1“”破折号“"number2”应改为"number2“”破折号“"number1”。请注意,该模式不允许空格。此模式可以发生任何(未知)次数,包括0。

该文本可以被任何其他文本包围,包括数字、字母、空格、特殊字符。

示例

代码语言:javascript
运行
复制
     asdasdasd10-1 2-3asdasd 9-2 2 3XSSADSD

应改为

代码语言:javascript
运行
复制
     asdasdasd1-10 3-2asdasd 2-9 2 3XSSADSD

类似的

代码语言:javascript
运行
复制
     <asdasd 10 - 2 dfdsfsdfsdf 8-2

变到

代码语言:javascript
运行
复制
     <asdasd 10 - 2 dfdsfsdfsdf 2-8
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-07-16 04:40:08

用这个:

代码语言:javascript
运行
复制
$replaced = preg_replace('~(\d+)-(\d+)~', '\2-\1', $yourstring);

演示中,请参见底部的替换。

解释

  • (\d+)周围的括号将数字捕获到第1组
  • 我们匹配-
  • (\d+)周围的括号将数字捕获到第2组
  • \2-\1以第2组+连字符+第1组取代

参考

  • 捕获组编号与命名:血淋淋的细节
  • 反向引用
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24772316

复制
相关文章

相似问题

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