我希望根据搜索字符串找到单词(表示前后的空格) 例如:
String s = "sdaaf fd hgfaaf ghjfada dgffaasdf";
我希望找到包含字符串"aa"
的所有单词
答案是:
"sdaaf" , "hgfaaf" , "dgffaasdf"
答案 0 :(得分:2)
你没有通过正则表达式来解决这个问题,因为有更直接的方法可以解决它。
String phrase = "aa";
String s = "sdaaf fd hgfaaf ghjfada dgffaasdf";
String[] words = s.split(" ");
List<String> wordList = new ArrayList<String>();
for(String word : words)
{
if(word.contains(phrase))
{
wordList.add(word);
}
]
答案 1 :(得分:1)
String regex = "(\\w+aaa\\w+)+";
Pattern pattern = Pattern.compile(regex);
Matcher matcher = pattern.matcher("helaaalo woraaald how are you toaaaday");
while (matcher.find()) {
System.out.print(matcher.group() + " ");
}
输出为:helaaalo woraaald toaaaday
您可以根据需要更改模式。
答案 2 :(得分:0)
按顺序执行以下步骤以获取"aa"
的所有字词: -
在空格上拆分字符串 - 为此,请使用String#split
方法。这将为您提供一个String数组,所有元素都以空格分隔。
然后迭代获得的String数组。
对于每个元素,请检查它是否包含序列"aa"
- 为此目的使用String#contains
方法。
ArrayList
,您必须事先创建它。答案 3 :(得分:0)
这是一个完整的解决方案,使用匹配每个单词的正则表达式:
final String input = "asdf ljh poiu ddaa aad aa", strToMatch = "aa";
final Matcher m = Pattern.compile(
String.format("\\w*?%s\\w*", Pattern.quote(strToMatch))).matcher(input);
while (m.find()) System.out.println(m.group());