【发布时间】:2013-02-27 18:51:19
【问题描述】:
我需要从字符串中提取子字符串:
给定字符串:"< If( ( h == v ) ): { [ < j = (i - f) ;>, < k = (g + t) ;> ] }>"
我需要两个子字符串:"j = (i - f)" 和 "k = (g + t)"。
为此,我尝试了用户模式正则表达式。这是我的代码:
Pattern pattern = Pattern.compile("[<*;>]");
Matcher matcher = pattern.matcher(out.get(i).toString());
while (matcher.find())
{
B2.add(matcher.group());
}
out.get(i).toString() 是我的输入字符串。 B2 是一个 ArrayList,它将包含两个提取的子字符串。
但是,运行上述代码后,我得到的输出是:[<, <, ;, >, <, ;, >, >]。
我的模式不起作用!非常感激你的帮助。 提前致谢!
【问题讨论】:
-
试试这个网站regexplanet.com
-
一个问题是
[...]并不代表你认为的那样。这是一个字符类的符号,例如,[abc]表示“a、b或c”。