首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如果字符串的开头或字符串中任何位置的连续字符,则删除特定字符。

如果字符串的开头或字符串中任何位置的连续字符,则删除特定字符。
EN

Stack Overflow用户
提问于 2019-07-24 12:48:45
回答 1查看 429关注 0票数 1

我目前正在尝试做一个正则表达式来删除所有这些字符0-9 \-* \‘,如果它们位于字符串的开头、字符串的末尾或者是字符串中的连续字符。

我现在有这个regex /^ at +(?:‘-+)$/gm,但是它只告诉我,它是否匹配字符串开头、字符串结尾或连续字符中缺少的特定字符,但我不确定应该如何删除不匹配的字符,因为它包含多个regex类(我不认为只能使用^并使其工作)。

我在这里做了单元测试,https://regex101.com/r/wNxttF/2

  • “这是不正确的,因为它包含5个连续的非字母字符”应该返回“这是不正确的,因为它包含5个连续的非字母字符”。
  • “这个”应该还“这个”
  • “这个”应该还“这个”
  • "1234567890“应返回"”
EN

回答 1

Stack Overflow用户

发布于 2019-07-24 13:04:09

你可以用

代码语言:javascript
复制
^[^a-zA-Z]+|[^a-zA-Z]+$|(['* -])['* -]+|[^a-zA-Z'* -]

用组1值的反向引用$1替换

代码语言:javascript
复制
s.replace(/^[^a-zA-Z]+|[^a-zA-Z]+$|(['* -])['* -]+|[^a-zA-Z'* -]/g, '$1')

regex演示

详细信息

  • ^[^a-zA-Z]+ -字符串开头处的一个或多个字符,而不是ASCII字符。
  • | -或
  • [^a-zA-Z]+$ -字符串末尾的一个或多个字符,而不是ASCII字符。
  • | -或
  • (['* -])['* -]+ -一个'*--被捕获到第1组,然后1+或更多这样的字符
  • | -或
  • [^a-zA-Z'* -] -非ASCII字母、'*、空格或-以外的字符。
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57183355

复制
相关文章

相似问题

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