Ali*_*aru 227
您可以使用lookarounds进行检查:
^(?=.*\bjack\b)(?=.*\bjames\b).*$
Run Code Online (Sandbox Code Playgroud)
这种方法的优点是您可以轻松指定多个条件.
^(?=.*\bjack\b)(?=.*\bjames\b)(?=.*\bjason\b)(?=.*\bjules\b).*$
Run Code Online (Sandbox Code Playgroud)
icy*_*com 87
尝试:
james.*jack
Run Code Online (Sandbox Code Playgroud)
如果你想要两个同时,那么or他们:
james.*jack|jack.*james
Run Code Online (Sandbox Code Playgroud)
Shu*_*rma 38
我要写的命令的解释: -
. 意味着任何字符,数字都可以代替.
* 意味着在它之前写入的事物出现零次或多次.
|意思是'或'.
所以,
james.*jack
Run Code Online (Sandbox Code Playgroud)
会搜索james ,然后搜索任意数量的角色jack.
既然你想要jack.*james或者james.*jack
因此命令:
jack.*james|james.*jack
Run Code Online (Sandbox Code Playgroud)
此答案中的表达式以任何顺序执行 1jack和 1 。james
在这里,我们将探索其他场景。
jack加一james为了以防万一,不允许有两个jack或两个,只有一个和一个有效,我们可以设计一个类似于以下的表达式:jamesjackjames
^(?!.*\bjack\b.*\bjack\b)(?!.*\bjames\b.*\bjames\b)(?=.*\bjames\b)(?=.*\bjack\b).*$
Run Code Online (Sandbox Code Playgroud)
在这里,我们将使用这些语句排除这些实例:
(?!.*\bjack\b.*\bjack\b)
Run Code Online (Sandbox Code Playgroud)
和,
(?!.*\bjames\b.*\bjames\b)
Run Code Online (Sandbox Code Playgroud)
我们还可以将其简化为:
^(?!.*\bjack\b.*\bjack\b|.*\bjames\b.*\bjames\b)(?=.*\bjames\b|.*\bjack\b).*$
Run Code Online (Sandbox Code Playgroud)
如果您希望简化/更新/探索表达式,请在regex101.com的右上角面板上进行解释。如果您有兴趣,可以在此调试器链接中观看匹配步骤或修改它们。调试器演示了RegEx 引擎如何逐步使用一些示例输入字符串并执行匹配过程。
jex.im可视化正则表达式:
^(?!.*\bjack\b.*\bjack\b)(?!.*\bjames\b.*\bjames\b)(?=.*\bjames\b)(?=.*\bjack\b).*$
Run Code Online (Sandbox Code Playgroud)
jack和一james该表达式也可以设计为先 ajames然后 a jack,类似于以下:
^(?!.*\bjack\b.*\bjack\b|.*\bjames\b.*\bjames\b)(?=.*\bjames\b.*\bjack\b).*$
Run Code Online (Sandbox Code Playgroud)
反之亦然:
^(?!.*\bjack\b.*\bjack\b|.*\bjames\b.*\bjames\b)(?=.*\bjack\b.*\bjames\b).*$
Run Code Online (Sandbox Code Playgroud)
不需要两次lookaheads,一个子串就可以正常匹配。
^(?=.*?\bjack\b).*?\bjames\b.*
Run Code Online (Sandbox Code Playgroud)
环视是零长度断言(条件)。这里的前瞻在^ 开始时jack检查字符串中是否稍后出现,并在成功时检查其余james部分.*(可以删除)。懒 点用在单词之前(包含在\b 单词边界中)。使用i- 标志忽略大小写。
您可以利用正则表达式的量词功能,因为lookaround可能并不总是受支持。
(\bjames\b){1,}.*(\bjack\b){1,}|(\bjack\b){1,}.*(\bjames\b){1,}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
158216 次 |
| 最近记录: |