gpt4 book ai didi

java - 在字符串的任意位置出现一个字符的正则表达式

转载 作者:行者123 更新时间:2023-12-03 18:33:05 25 4
gpt4 key购买 nike

我正在编写一个Java代码,该方法可以从任何迷宫中寻找出路,并且我需要一个检查生成的迷宫的类。仅允许使用.#SX字符。


.#-允许在字符串的任何位置多次出现
SX-允许在字符串的任何位置出现一个且不超过一个。


^[#//.]+$-第一个条件的正则表达式,
但是我不能实现第二个。

迷宫输入如下所示:

.......S..#.
.....###....
..X.........


。 -空的空间,#-墙,S-开始,X-退出

最佳答案

您可以使用类似(?!...)negative lookahead groups来实现此目的,如下所示:

^(?!.*S.*S)(?!.*X.*X)[SX.#]+$


Demo

这将从字符串的开头使用 SX接受集合中的任何字符集( .#^[SX.#]+)。但是它拒绝包含2个 S s( (?!.*S.*S))或2个 X s( (?!.*X.*X))的任何字符串。

请注意,这实际上检查了您的两个条件。您实际上并不需要2个正则表达式。但是,根据您的示例迷宫,您的输入看起来可以跨越多行。在这种情况下,您需要在最终字符类中添加 \n

关于java - 在字符串的任意位置出现一个字符的正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57743346/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com