加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

regex – 如何匹配“任何东西,直到这个字符序列”在正则表达式?

发布时间:2020-12-14 00:39:52 所属栏目:百科 来源:网络整理
导读:取这个正则表达式:/ ^ [^ abc] /。这将匹配字符串开头的任何单个字符,除了a,b或c。 如果在其后添加* / / ^ [^ abc] * / – 正则表达式将继续将每个后续字符添加到结果中,直到它遇到a,或b或c。 例如,对于源字符串“qwerty qwerty whatever abc hello”
取这个正则表达式:/ ^ [^ abc] /。这将匹配字符串开头的任何单个字符,除了a,b或c。

如果在其后添加* / / ^ [^ abc] * / – 正则表达式将继续将每个后续字符添加到结果中,直到它遇到a,或b或c。

例如,对于源字符串“qwerty qwerty whatever abc hello”,表达式将匹配“qwerty qwerty wh”。

但是如果我想要匹配的字符串是“qwerty qwerty任何”

…换句话说,我如何匹配一切到(但不包括)确切的序列“abc”?

你没有指定你正在使用的正则表达式的风味,但这将是
工作在任何最流行的,可以被认为是“完整的”。
/.+?(?=abc)/

怎么运行的

的。 ?部分是不贪婪的版本。 (一个或多个
任何东西)。当我们使用。 ,发动机基本上匹配一切。
然后,如果正则表达式中还有其他的东西,它会回到步骤
尝试匹配以下部分。这是贪婪的行为,
意思尽可能多地满足。

使用时。 ?,而不是一次匹配所有并返回
其他条件(如果有),引擎将匹配下一个字符
直到正则表达式的后续部分匹配(如果有的话)。
这是不贪婪的,意思是尽可能少地匹配
满足。

/.+X/  ~ "abcXabcXabcX"        /.+/  ~ "abcXabcXabcX"
          ^^^^^^^^^^^^                  ^^^^^^^^^^^^

/.+?X/ ~ "abcXabcXabcX"        /.+?/ ~ "abcXabcXabcX"
          ^^^^                          ^

接下来,我们有(?= {content}),零宽度
断言,看看周围。这种分组结构与其匹配
内容,但不计为匹配的字符(零宽度)。它
只有当它是一个匹配(断言)时才返回。

因此,在其他方面,正则表达式。 α(α= abc)/表示:

Match any characters as few as possible until a “abc” is found,without counting the “abc”.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读