首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >基于REGEX的案例分析

基于REGEX的案例分析
EN

Stack Overflow用户
提问于 2021-04-23 13:43:05
回答 1查看 48关注 0票数 0

我有一些数据

代码语言:javascript
复制
small_animal/Mouse
BigAnimal:Elephant
Not an animal.

我想得到的是:

代码语言:javascript
复制
Mouse
Elephant
Not an animal.

因此,我需要一个正则表达式来搜索/:,如下所示:如果找到其中之一,则取该字符后面的文本。如果/:都不存在,则取整个字符串。

我试了很多次。例如,这将适用于鼠标和大象,但不适用于第三行:

代码语言:javascript
复制
(?<=:)[^:]*|(?<=/)[^/]*

这个会给出完整的字符串..。

代码语言:javascript
复制
(?<=:)[^:]*|(?<=/)[^/]*|^.*$

我的头烧焦了,也许有人能帮上忙?:)非常感谢!

编辑:

@第四只鸟为单个字符提供了一个很好的解决方案。但是如果我想搜索字符串,比如

代码语言:javascript
复制
animal::Dog
Another123Cat
Not an animal.

我怎样才能在::123上分开

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-04-23 13:44:59

你可能会用

代码语言:javascript
复制
^(?:[^:/]*[:/])?\K.+
  • 字符串的^开始
  • (?:[^:/]*[:/])?可选择匹配除:/以外的任何字符,直到匹配:/为止。
  • \K忘记了到目前为止匹配的
  • .+匹配1+乘以任何字符

regex演示

如果不想跨越换行符,可以使用[^:/\r\n]*扩展字符类

另一种选择可能是使用替换。

代码语言:javascript
复制
^[^:/]*[:/]\K.+|.+

Regex演示

或者通过匹配您想要省略的内容来使用跳过失败方法。

代码语言:javascript
复制
^[^:/]*[:/](*SKIP)(*F)|.+

Regex演示

如果要使用多个字符,也可以使用

代码语言:javascript
复制
^(?:(?:(?!123|::|[:/]).)*+(?:123|::|[:/]))?\K.+

Regex演示

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

https://stackoverflow.com/questions/67231056

复制
相关文章

相似问题

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