Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/339.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何形成正则表达式,过滤掉以==开头和以==结尾的单词?_Java_Regex - Fatal编程技术网

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

Java 如何形成正则表达式,过滤掉以==开头和以==结尾的单词?,java,regex,Java,Regex,我想过滤掉所有以==开头并以=结尾的单词,例如==Hello==,但我不想让==Bye====这样的单词成为匹配的一部分 我正在使用下面的正则表达式,但它没有返回我想要的结果:==(*?)==,我在制定正则表达式时犯了什么错误?==(*?)==仍然匹配==Bye==。您需要特别检查前面或后面是否没有=。您还需要确保未捕获任何=,因此*不起作用。使用[^=] (?<!=)==([^=]*)==(?!=) (? 试试这个: ([^=]|^)==([^=]+)==([^=]|$) 它还处理发

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

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

==(*?)==
仍然匹配
==Bye==
。您需要特别检查前面或后面是否没有
=
。您还需要确保未捕获任何
=
,因此
*
不起作用。使用
[^=]

(?<!=)==([^=]*)==(?!=)
(?
试试这个:

([^=]|^)==([^=]+)==([^=]|$)
它还处理发生在给定字符串开头或结尾的匹配。

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

参见演示

我在以下字符串上执行了这个正则表达式====[[危地马拉]===*[[Flores(危地马拉)]-一座城市===[[Flores(印度尼西亚)]=====*[[Flores(印度尼西亚)]-一个岛屿===[[Flores(亚速尔)]===[[Flores(亚速尔)]-亚速尔群岛中的一个岛屿===[[乌拉圭]===[[Flores乌拉圭]]]==[[[Flores乌拉圭]]]-一个省”;它仍然不起作用此返回结果为-===[[危地马拉]]=====[[印度尼西亚]]=======[[葡萄牙]]=======[[乌拉圭]]===如果我想删除一个带有空字符的字符串中的前导和尾随下划线,并保留字符之间的下划线,例如,我想将“Get_in”作为“Get_in”?怎么做?@AnkitSablok这听起来像是一个单独的问题。如果您能提供帮助,我正在尝试完成与此相关的任务太好了:在给定字符串的开头或结尾发生的匹配是什么意思?^和|$表示这将匹配,例如“==STR==”以及“blah==STR==blah”。这并不是对其他答案的评论,只是对正则表达式中出现这些答案的原因的评论。我不想这样。我想这就是我得到坏结果的原因,如果我想删除这个怎么办?@AnkitSablok如果你不想在字符串开头匹配,请删除“| ^”如果您不想在字符串末尾匹配,请删除“|$”,如果我想删除带有空字符的字符串中的前导和尾随下划线,并保留字符之间的下划线,例如,我希望“Get_in”作为Get_in?如何做到这一点