小编reg*_*tml的帖子

如何更好地编写此循环?

我有一个代码,可以做这样的事情:

while (doorIsLocked()) {
    knockOnDoor();
}
openDoor();
Run Code Online (Sandbox Code Playgroud)

但我想礼貌,在打开它之前总是敲门.我可以这样写:

knockOnDoor();
while (doorIsLocked()) {
    knockOnDoor();
}
openDoor();
Run Code Online (Sandbox Code Playgroud)

但我只是想知道是否有更好的成语不重复陈述.

c++ loops

17
推荐指数
2
解决办法
711
查看次数

使用Java正则表达式删除字符串中的每个其他字符

我有这个功课问题,我需要使用正则表达式删除字符串中的所有其他字符.

在一个部分中,我必须删除索引1,3,5处的字符,...我已按如下方式执行此操作:

String s = "1a2b3c4d5";
System.out.println(s.replaceAll("(.).", "$1"));
Run Code Online (Sandbox Code Playgroud)

这打印12345出我想要的东西.基本上我一次匹配两个字符,并替换为第一个字符.我使用群组捕获来做到这一点.

问题是,我在作业的第二部分遇到问题,我需要删除索引0,2,4处的字符,...

我做了以下事情:

String s = "1a2b3c4d5";
System.out.println(s.replaceAll(".(.)", "$1"));
Run Code Online (Sandbox Code Playgroud)

这打印abcd5,但必须正确答案abcd.如果输入字符串长度为奇数,则我的正则表达式只是不正确.如果它是偶数,那么我的正则表达式工作正常.

我想我真的很接近答案,但我不确定如何解决它.

java regex

9
推荐指数
1
解决办法
8119
查看次数

区分大小写并且在相同模式下不敏感

感谢我以前的作业问题的帮助Regex to match tags like <A>, <BB>, <CCC> but not <ABC>,但现在我有另一个功课问题.

我需要匹配标签<LOL>,<LOLOLOL>(3个大写字母,最后两个字母可重复),但不是<lol>(需要大写).

使用以前的作业技术,我试过<[A-Z]([A-Z][A-Z])\1*>.这是有效的,除了还有一个额外的问题:重复部分可以是大小写混合!

所以我还需要匹配<LOLolol>,<LOLOLOlol>因为它是3个大写字母,在大小写混合的情况下可重复的最后两个字母.我知道你可以创建一个不区分大小写的模式/i,这将让我与我<LOLolol>的正则表达式匹配,但它现在也匹配<lololol>,因为前3个字母的检查也不区分大小写.

那我该怎么做?如何敏感地检查前三个字母,然后其他字母不区分大小写?正则表达式可以实现吗?

regex case-sensitive case-insensitive

8
推荐指数
1
解决办法
6827
查看次数

正则表达式匹配<A>,<BB>,<CCC>等标签,但不匹配<ABC>

我需要一个正则表达式匹配的标签,看起来像<A>,<BB>,<CCC>,但不<ABC>,<aaa>,<>.所以标签必须由相同的大写字母组成,重复.我试过了<[A-Z]+>,但那不起作用.当然我可以写类似的<(A+|B+|C+|...)>等等,但我想知道是否有一个更优雅的解决方案.

regex

6
推荐指数
1
解决办法
257
查看次数

标签 统计

regex ×3

c++ ×1

case-insensitive ×1

case-sensitive ×1

java ×1

loops ×1