如何编写正则表达式匹配并移除非字母间的连字符?
正则表达式实现方案
要移除所有不在两个英文字母([a-zA-Z])之间的'-'字符,可以使用负向环视的正则表达式精准匹配目标字符,具体方案如下:
正则匹配规则
使用以下正则表达式定位需要删除的'-':
-(?![a-zA-Z])|(?<![a-zA-Z])-
规则解释
-(?![a-zA-Z]):匹配后面未紧跟英文字母的'-',比如示例里"dummy-"末尾的横杠|:逻辑或,连接两种需要匹配的场景(?<![a-zA-Z])-:匹配前面未跟随英文字母的'-',比如示例里"-typesetting"开头的横杠、"Lorem Ipsum - "中前后是空格的横杠
替换操作
把匹配到的所有'-'替换为空字符串(""),就能得到你期望的结果——既保留"a-z"这种位于两个字母间的横杠,又删除其他不符合要求的横杠。
内容的提问来源于stack exchange,提问作者bhdrozgn
相关产品推荐
相关产品推荐

