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

前端之家收集整理的这篇文章主要介绍了regex – 如何匹配“任何东西,直到这个字符序列”在正则表达式?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
取这个正则表达式:/ ^ [^ 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”.

原文链接:https://www.f2er.com/regex/358452.html

猜你在找的正则表达式相关文章