制作一个正则表达式,可以找到两个可以颠倒顺序的单词

时间:2016-12-12 23:45:26

标签: regex

我正在处理一个涉及正则表达式的项目,而我遇到的问题是我需要制作一个符合以下条件的正则表达式:

private int GoodYear(String in, int j){
private static int GoodYear(String in, int j){
private final int GoodYear(String in, int j){
private static final int GoodYear(String in, int j){
private final static int goodYear(String in, int j){

我已经做到了这一点:

^\s*(public\s+|private\s+|protected\s+)?(static\s+)?(final\s+)?(\w+)\s+(\w+)\s*\((.*)\)\s*\{

它匹配前四个而不是最后一个。如何修复我的正则表达式,以便它能读取"静态"和"最终"在任何一个顺序?

非常感谢任何和所有帮助!

-Chris

2 个答案:

答案 0 :(得分:0)

我会使用以下模式:

private\s*?(((final\s*?static)|(static\s*?final))|(final)|(static))?\s*?int\s*?goodyear\(.*?\){

该模式包含((final\s*?static)|(static\s*?final)),可让您匹配"最终静态"或者"静态决赛"。

https://regex101.com/r/YVd4hU/1

答案 1 :(得分:0)

要按任意顺序匹配,请使用 ((?:static(?:\s+final)?|final(?:\s+static)?)\s+)?