You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用正则表达式去除首尾指定字符(如.)并保留非首尾匹配

移除字符串首尾指定字符的正则表达式方案

嘿,这需求我熟!要实现只移除字符串首尾的指定字符(比如英文句号.),中间位置的该字符完整保留,用正则表达式很容易搞定,我给你拆解清楚:

核心正则表达式(针对英文句号)

直接用这个正则匹配首尾的句号,然后替换为空字符串就行:

^\.|\.$

正则各部分解释

  • ^:匹配字符串的起始位置
  • \.:匹配英文句号(因为.在正则里是通配符,所以要加反斜杠转义)
  • |:逻辑“或”,匹配前后任意一种情况
  • \.$:匹配字符串结束位置的句号

示例验证

拿你给出的几个测试字符串来验证,处理结果完全符合预期:

  • 输入 .www.cat.com. → 输出 www.cat.com
  • 输入 .www.cat.com → 输出 www.cat.com
  • 输入 www.cat.com → 输出 www.cat.com(无首尾字符,原样保留)
  • 输入 www.cat.com. → 输出 www.cat.com

扩展场景:移除首尾多个相同指定字符

如果遇到首尾有多个目标字符的情况(比如 ..www.cat.com..),可以把正则改成这样,一次性移除所有首尾的连续目标字符:

^\.+|\.+$

这里的+表示匹配前面的字符(句号)1次或多次。

代码示例(常见编程语言)

JavaScript

const testStrs = [".www.cat.com.", ".www.cat.com", "www.cat.com", "www.cat.com."];
testStrs.forEach(str => {
  const processed = str.replace(/^\.|\.$/g, '');
  console.log(`原字符串:"${str}" → 处理后:"${processed}"`);
});

Python

import re

test_strs = [".www.cat.com.", ".www.cat.com", "www.cat.com", "www.cat.com."]
for s in test_strs:
    processed = re.sub(r'^\.|\.$', '', s)
    print(f'原字符串:"{s}" → 处理后:"{processed}"')

适配其他指定字符

如果要处理其他字符(比如感叹号!、逗号,),只需要把正则里的\.换成目标字符即可。比如处理感叹号的正则是:

^!|!$

内容的提问来源于stack exchange,提问作者Wronski

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.15 04:30:41