我有一个字符串变量被传递到名为“letters”(Say)的方法 check() 中。因此该字符串将是动态的。
该方法需要检查在数组列表中单独传递的单词是否仅包含“字母”中包含的字符。
我的循环中有以下内容,当循环遍历数组时,单词字符串每次都会发生变化。
word = wordArray.get(i);
if ((word.length() <= letters.length()) && (word.matches(letters))
{
// Do something.
}
string.matches() 似乎是可行的方法,但是考虑到上述代码不起作用,我在弄清楚如何使用字母字符串变量作为匹配所使用的表达式时遇到了问题。
我的想法是我可能需要添加某些表达式字符,或者可能转义字母字符串? (我已经尝试过这个,但没有运气)任何人都可以建议我如何确保该单词只能包含字符串变量“字母”中的字符?
谢谢
最佳答案
你可以做到
Pattern p = Pattern.compile("[" + Pattern.quote(letters) + "]*");
然后是:
if (word.length() <= letters.length() && p.matcher(word).matches());
关于java - 将动态字符串变量转换为 string.match() 的正则表达式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22077569/