当前位置: 首页 > 知识库问答 >
问题:

java regex中的混乱

齐夕
2023-03-14

根据java.util.regex.Pattern文档,^表示否定,也表示行首。我如何弄清楚^在任何程序中用于什么?

这个程序从Java中思考(与上面的问题无关)

import java.util.regex.*;
public class ReFlags {
    public static void main(String[] args) {
        Pattern p = Pattern.compile("[^java]", Pattern.CASE_INSENSITIVE | Pattern.MULTILINE);
        Matcher m = p.matcher(
        "java has regex\nJava has regex\n" +
        "JAVA has pretty good regular expressions\n" +
        "Regular expressions are in Java");
        while(m.find())
            System.out.print(m.group());
    }
}
 hs regex
 hs regex
 hs pretty good regulr expressions
Regulr expressions re in

我理解[^java]的含义,但是其他四种模式是什么意思呢?我可以做些什么来获得输出中除了单词java(不区分大小写)以外的所有内容?

共有1个答案

公孙志尚
2023-03-14

[^java]->它匹配任何charcater,但不匹配JVA[^..]称为否定字符类。它匹配所有字符,除了被否定的charcater类中的Charcter匹配的字符。

^java->它与行首的字符串java匹配。您可以通过M.group(0)打印匹配项。

^(java)->它捕获出现在行首的字符串java。您可以按M.group(0)打印匹配,并按M.group(1)打印第一个捕获组中的字符,其中Mmatcher类的对象。因此,您可以从M.group(0)M.group(1)中获得字符串java

(^java)->与上面一样,它捕获出现在行首的字符串java

 类似资料:
  • 由于我是一个新的弹性搜索,我有困惑在弹性搜索方面。 启动elasticsearch时,它显示为5个分片。但是插入数据后,分片不断增加。我不知道分片的默认设置是什么。 提前道谢!

  • 使用filters=“none”通过在Spring Security的FilterChainProxy中创建一个空的筛选器链来操作,而访问属性用于在由名称空间配置创建的单个筛选器链中配置FilterSecurityInterceptor。这两者是独立应用的,因此,如果对具有filters=“none”属性的模式的子模式有访问限制,则访问限制将被忽略,即使它被首先列出。不可能将filters=“no

  • 我已经运行这个程序好几次了,每次最后打印的p和g的值都是一样的。我不太确定为什么会这样——malloc不能在理论上选择内存中的任何位置让p和g指向吗?为什么p 8总是等于g?如果能澄清,将不胜感激。 谢谢

  • 当违反严格的混淆现象规则时,我试图掌握未定义的行为。为了理解它,我读了很多关于SO的文章。然而,还有一个问题:我并不真正理解两种类型的非法别名。cpp-参考指出: 类型混淆现象 每当尝试通过AliasedType类型的glvalue读取或修改DynamicType类型对象的存储值时,除非以下之一为真,否则行为未定义: AliasedType和DynamicType类似 AliasedType是Dy

  • 这是一个程序,试图找出数组的所有混乱 但它不起作用,因为当涉及到和时,for循环没有结束,然后i递减为-1。到底怎么回事?

  • 而RNDecryptor的addData方法如下: 我不明白这一行实际上是要做什么,它对加密流的每一个块都调用: 假设我有一个1000字节的块,而HMACLength是32。 提前道谢。