将java代码转换为一个正则表达式

将java代码转换为一个正则表达式,java,regex,string,Java,Regex,String,我需要帮助将equals代码转换为匹配项(regex)。非常感谢 //string composed of prefix and suffix - Can be spaced //PREFIX - alfa-numeric, variable length, upper/lower case //SUFFIX - numeric, variable length, can be spaced String str="xpto 123 456 789";

我需要帮助将equals代码转换为匹配项(regex)。非常感谢

    //string composed of prefix and suffix - Can be spaced
    //PREFIX - alfa-numeric, variable length, upper/lower case
    //SUFFIX - numeric, variable length, can be spaced
    String str="xpto 123 456 789";

    String prefix_to_search="XPTO";
    String digits_to_search="123456789";

    //remove prefix (case insensitive)
    str.substring(str.toUpperCase().startsWith(prefix_to_search) ? prefix_to_search.length() : 0).
    //remove spaces
    replace(" ","").
    equals(digits_to_search));
给定字符串“xpto 123 456 789”

匹配
“123456789”
“123456789”
“123456789”
“XPTO 123 456 789”
“XPTO 123456789”

不匹配
“12345678”
“1234567890”
“XPTO 12345678”
“XPTO 1234567890”
“XP 123 456 789”
“123456789XPTO”

换句话说:
-必须忽略前缀(不区分大小写!)
-数字必须匹配(空格必须被忽略!)

这应该可以做到(假设它是针对这个问题的)

您可以在www.regexplanet.com上查看

(?i)(?:xpto)?\\s*1\\s*2\\s*3\\s*4\\s*5\\s*6\\s*7\\s*8\\s*9

如果您想始终与前缀匹配,请删除前缀组后的
(在您的更新中,前缀似乎不是必需的)

记住,您也可以在www.regexr.com中尝试它为什么?如果你有可以工作的代码,你真的需要更改它吗?它将应用于一个查询!我没有所有可用的字符串函数,但我可以使用“匹配”!数字的顺序重要吗?您能提供您的预期输出吗?因为这里的用户更容易想出解决方案。@marcolopes请发布您的预期输出,以便我们能够准确了解您的预期。其他用户要求您这样做,而您所说的“它不起作用”。。。。
(?i)(?:xpto)?\\s*1\\s*2\\s*3\\s*4\\s*5\\s*6\\s*7\\s*8\\s*9