我有一个像 -
这样的模式public static void myMethod(int Val , String Val){}
所以 public \ static \ void \ myMethod (int \ sVal \ s,\ sString \ sVal)
但是如果我的方法有比公共静态更多的空间,那么它就失败了。 那么如何制作一个具体的模式。
此外,支架内的部件无法正常工作,建议我解决问题的方法。
答案 0 :(得分:4)
使用\s+
匹配一个或多个匹配项,使用\s*
匹配零个或多个匹配项。转义括号,使它们不被解释为分组运算符。
public\s+static\s+void\s+myMethod\s*\(\s*int\s+Val\s*,\s*String\s+Val\s*\)
也就是说,看起来您正在尝试使用正则表达式解析Java代码。这是不可能的,因为Java(如infamous [X]HTML)不是常规语言。
答案 1 :(得分:1)
使用\s+
代替
答案 2 :(得分:1)
一些事情,但你走在正确的轨道上。将\s
替换为\s+
以表示一个或多个空格字符。
此外,您的parens无法正常工作,因为它们是保留的正则表达式字符。你必须逃避它们以使它们被字面解释
/public\s+static\s+void\s+myMethod\s*\(\s*int\s+Val\s*,\s*String\s+Val\s*\)/
答案 3 :(得分:1)
尝试使用"一个或多个"修饰符(+
)匹配多个匹配项:
public\s+static\s+void\s+myMethod...