我不太擅长正则表达式,所以我需要一些帮助。
我有一长串乱码(特殊和字母数字);但是在中间的某个地方,我有一个我感兴趣的块,它有两组单词,由正斜杠分隔,例如:
$234207黄色/绿色$M4/ZlAVadvae1bUAoIfaEbEAZ4HdBHr2ftv+3tIo+yw==
我对整个事情的黄色/绿色部分感兴趣;我感兴趣的部分可以在字符串中的任何位置,所以我不能依赖索引:(
你能帮我找到我可以在我的 Java 代码中使用的正则表达式吗?
谢谢。
我不是 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
根据您所说的“单词”的含义:
[a-zA-Z]+/[a-zA-Z]+
如果您说的只是字母(无论大小写),您可以使用@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