在大海捞针中查找字符串*和*的子字符串

CAF*_*FxX 8 regex string substring

假设你有一个字符串(例如needle).它的19个连续子串是:

needle
needl eedle
need eedl edle
nee eed edl dle
ne ee ed dl le
n e d l
Run Code Online (Sandbox Code Playgroud)

如果我要建立一个正则表达式,在大海捞针中,我可以简单地做任何子串:

/(needle|needl|eedle|need|eedl|edle|nee|eed|edl|dle|ne|ee|ed|dl|le|n|e|d|l)/
Run Code Online (Sandbox Code Playgroud)

但它看起来并不优雅.有没有更好的方法来创建一个贪婪地匹配给定字符串的任何一个子串的正则表达式?

另外,如果我提出另一个约束,想要仅匹配长于阈值的子串,例如对于至少3个字符的子串:

/(needle|needl|eedle|need|eedl|edle|nee|eed|edl|dle)/
Run Code Online (Sandbox Code Playgroud)

注意:我故意没有提到任何特定的正则表达方言.请说明您在答案中使用的是哪一个.

Qta*_*tax 1

有没有更好的方法来创建一个与给定字符串的任何一个子字符串匹配的正则表达式?

不会。但是您可以轻松生成这样的表达式。