如何编写匹配短横线右侧内容或整串的正则表达式?
解决方案
直接用这个正则表达式就能覆盖两种场景:
(?<=-).*$|^[^-]+$
规则解释:
(?<=-).*$:匹配短横线-右侧的所有内容(和你之前实现的逻辑一致,$确保匹配到字符串末尾)|:逻辑或,只要满足任意一侧的匹配条件就生效^[^-]+$:匹配整个字符串,仅当字符串中完全没有短横线时触发(^和$限定字符串首尾范围,[^-]+匹配一个或多个非短横线的字符)
验证示例:
- 输入
"Text":匹配^[^-]+$规则,返回Text - 输入
"Sample-Text":匹配(?<=-).*$规则,返回Text
另外,如果你是在支持替换模式的场景下使用(比如多数编程语言的字符串替换API),可以用更简洁的方式:
用正则.*-匹配短横线及左侧的所有内容,然后将匹配结果替换为空字符串。如果字符串里没有短横线,替换操作不会生效,直接保留原字符串:
- 处理
"Sample-Text"时,替换后得到Text - 处理
"Text"时,无匹配项,返回原字符串Text
内容的提问来源于stack exchange,提问作者Caryon
相关产品推荐
相关产品推荐

