0

我不太擅长正则表达式,所以我需要一些帮助。

我有一长串乱码(特殊和字母数字);但是在中间的某个地方,我有一个我感兴趣的块,它有两组单词,由正斜杠分隔,例如:

$234207黄色/绿色$M4/ZlAVadvae1bUAoIfaEbEAZ4HdBHr2ftv+3tIo+yw==

我对整个事情的黄色/绿色部分感兴趣;我感兴趣的部分可以在字符串中的任何位置,所以我不能依赖索引:(

你能帮我找到我可以在我的 Java 代码中使用的正则表达式吗?

谢谢。

4

3 回答 3

3

我不是 100% 确定这是否是你想要的,但看起来你需要找到分隔的单词,/所以也许这会有所帮助

String s="$234207YELLOW/GREEN$M4/ZlAVadvae1bUAoIfaEbEAZ4HdBHr2ftv+3tIo+yw==";
Pattern p=Pattern.compile("[a-zA-Z]+/[a-zA-Z]+");
Matcher m=p.matcher(s);
if(m.find())
    System.out.println(m.group());

输出:YELLOW/GREEN

于 2012-07-05T19:26:13.597 回答
1

根据您所说的“单词”的含义:

[a-zA-Z]+/[a-zA-Z]+
于 2012-07-05T19:25:05.770 回答
1

如果您说的只是字母(无论大小写),您可以使用@TimK 或@Pshemo 建议的内容:
"[a-zA-Z]+/[a-zA-Z]+"

但是,如果单词全部大写,您可以将其简化为
"[A-Z]+/[A-Z]+"

或者如果你有一个已知单词列表,你可以使用
"(RED|YELLOW|ORANGE|GREEN|BLUE|PURPLE)/(RED|YELLOW|ORANGE|GREEN|BLUE|PURPLE)"

使用正则表达式时,我倾向于使用此备忘单
http://www.regular-expressions.info/reference.html

于 2012-07-05T19:37:14.393 回答