这个问题是由打字错误或无法再复制的问题引起的。虽然这里可能有类似的问题,但这一问题的解决方式不太可能帮助未来的读者。
我试图在HashMap中找到字符串,该字符串对于给定的单词有一个子字符串。在我的代码中,输出是“1 2 3 4”(所有索引)。输出应为“2 3”。
import java.util.HashMap;
import java.util.Map;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class App {
public static void main(String[] args) throws Exception {
Map<Integer, String> map = new HashMap<>();
map.put(1,"cracking the coidng");
map.put(2,"java essentials");
map.put(3,"Elem java practice");
map.put(4,"Python exercises");
String regex = "java";
Pattern p = Pattern.compile(".*[" + regex + "].*");
for(Map.Entry<Integer,String> entry : map.entrySet()){
Matcher m = p.matcher(entry.getValue());
if(m.matches()){
System.out.println(entry.getKey());
}
}
}
}
如果我执行这个,我会
1张
2.
3.
因为,*[java]*
is字符类
Python练习没有任何a、j或v
如果要使用字符串基条件,请使用
*(爪哇)*
或<代码>*java*
而不是
*[java]*
问题似乎出在正则表达式上,使用<代码>*(爪哇)* 当正则表达式工作时。在您的例子中,这将使用括号而不是括号。括号用于固定组(如单词),括号用于字母范围(如a-z)。
正则表达式*[java]* 与示例值中的3个值匹配,因为括号创建的括号表达式与括号之间的任何字符匹配。看见https://regex101.com/r/GAABU1 .
我想你想要<代码>*java* (不带括号)。
问题内容: 有没有办法找出Python字符串中某个正则表达式的匹配项?例如,如果我有字符串 我想知道字符串中出现了多少次。在该字符串中,出现两次。我希望函数告诉我它出现了两次。这可能吗? 问题答案: 现有的基于解决方案的解决方案适用于非重叠匹配(毫无疑问是最佳的,可能是因为匹配数量巨大),尽管诸如(避免在您只关心计数时实现列表)的替代方案也很可能。某种特质将使用并忽略结果字符串…: 如果您只想数数
问题内容: 我在尝试将我的javascript regex经验转移到Python时遇到了麻烦。 我只是想让它工作: …但是它打印无。如果我做: 它匹配…默认情况下是否匹配字符串的开头?当匹配时,如何使用结果? 我如何进行第一场比赛?是否有比python网站提供的文档更好的文档? 问题答案: 隐式添加到您的正则表达式的开头。换句话说,它仅在字符串的开头匹配。 将在所有位置重试。 一般来说,建议您在需
问题内容: 我在用Python将字符串中的数字匹配时遇到麻烦。尽管应该明确匹配,但甚至不匹配 或仅匹配。我的监督在哪里? 问题答案: 阅读文档:http : //docs.python.org/2/library/re.html#re.match 如果在零个或多个字符 开头 的 字符串 您要使用(或)
问题内容: 我试图返回一个数组或切片,针对字符串针对特定正则表达式的所有匹配项。字符串是: 我想返回一个花括号之间所有字符串都匹配的数组。我尝试使用regexp软件包来完成此操作,但无法弄清楚如何返回我要查找的内容。这是我当前的代码: 但是,无论我尝试什么,每次返回的结果都是一片空白。 问题答案: 首先,您不需要正则表达式定界符。其次,使用原始字符串文字定义一个正则表达式模式是个好主意,您只需要使
问题内容: 我会在开头提到这个问题,尽管我离正则表达式专家很远,但是它们对我来说并不完全陌生。对于我来说,构建正则表达式来搜索特定字符串中的模式通常不是问题,但是我有一个(也许是?)独特的情况。 我有一组价值观,例如: 028938 DEF567987 390987.456 GHI345928.039 我想匹配一组特定的字符串,例如: 完全由6位数字组成的字符串 字符串,由正好6位数字,十进制组成
我正在arround制作一个与字符串的某个块匹配的正则表达式,问题是它包含许多相似的块,并且没有清楚地分开,所以我不知道如何停止正则表达式。 字符串的例子 所以我要做的是匹配并只选择第一个A1。到目前为止,我所做的是: