【发布时间】:2018-08-13 19:06:31
【问题描述】:
我想在一个字符串中找到一个字符串,这是我的场景:
String toMatch = "ABC";
String matchIn = "ABC*FED";
matchIn 的其他变体:
matchIn = "ABC";
matchIn = "ASD*ABC";
matchIn = "JULY*ABC*RTEW";
我想出了这个正则表达式,但它显然不起作用:
matchIn.matches(".*(\\*)?" + toMatch + "(\\*)?.*");
这里的问题是我不知道如何查找 "*" 只有当它后面跟着另一个词时。这样,它只是匹配所有内容,例如,
toMatch="ABCDEF" 在不应该的时候返回 true!
【问题讨论】:
-
为什么 ABC 还不够?我不明白你到底想用 *.您正在寻找 ABC 或更多?
-
如果你只是在一个字符串中搜索一个字符串,那么String.indexOf(String)就足够了。
-
因为 ABC 与 ABCDEF 不同,所以 '*' 是一个分隔符。
-
stackoverflow.com/questions/2631010/… 但没有
?!的答案可能会有用。 -
对 MCVE 的有效 SO 问题投了 6 票,而明确尝试解决该问题是一种耻辱。 The point Jamie was trying to make: not that regular expressions are evil, per se, but that *overuse of regular expressions is evil*.