将java代码转换为一个正则表达式
我需要帮助将equals代码转换为匹配项(regex)。非常感谢将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";
//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