有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java如何形成正则表达式,过滤掉以==开头和以==结尾的单词?

我想过滤掉所有以==开头,也以==结尾的单词,例如==Hello==,但我不希望像===Bye===这样的单词成为匹配的一部分

我正在使用下面的正则表达式,但它没有返回我想要的结果:==(.*?)==,我在制定正则表达式时犯了什么错误


共 (3) 个答案

  1. # 1 楼答案

    ==(.*?)==仍然匹配===Bye===。您需要特别检查是否没有前面或后面的=。您还需要确保没有捕获=,这样.*就不起作用了。使用[^=]

    (?<!=)==([^=]*)==(?!=)
    

    http://rubular.com/r/bWpBPf3QXZ

  2. # 2 楼答案

    (?<!=)==\K[^=]+(?===)(?!===)
    

    请参见演示here

  3. # 3 楼答案

    试试这个:

    ([^=]|^)==([^=]+)==([^=]|$)
    

    它还处理发生在给定字符串开头或结尾的匹配