首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >将字母和数字放在一起,它们是序数

将字母和数字放在一起,它们是序数
EN

Stack Overflow用户
提问于 2020-01-25 04:02:58
回答 1查看 388关注 0票数 3

其目的是删除数字和序数缩写(st,rd,th,nd)之间的空格。

例如,以下数字和缩写应组合在一起形成第10、1和133:

代码语言:javascript
运行
复制
10   th elementary
1  st grade
133  rd anniversary

但是,不允许将这些其他示例设置在一起:

代码语言:javascript
运行
复制
abc123 th 33333    rddccc
10 thetree
20 street

为此,我提出了以下正则表达式:

代码语言:javascript
运行
复制
(?<=[0-9])+\s+(?=(st|nd|rd|th)\b)

但是,它也一起设置了前面不允许的字符串。

你知道怎样才能把正确的序数组合在一起吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-01-25 04:09:31

您可以向正向先行添加另一个部分,以断言以下内容是一个单词字符(下划线或数字除外),或者断言字符串的末尾,以防它是最后一次出现:

代码语言:javascript
运行
复制
(?<=[0-9])\s+(?=(?:st|[rn]d|th)(?: [^\W\d_]|$))

Regex demo

请注意,您可以在正后视之后省略+,并且可以缩短替换为[rn]d的时间

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

https://stackoverflow.com/questions/59902994

复制
相关文章

相似问题

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