Java 正则表达式:如何匹配未包围的字符串

Java 正则表达式:如何匹配未包围的字符串,java,regex,Java,Regex,我有一个字符串“REC/LESS-FEES/code/AU013423” 与“REC”和“AU013423”匹配的正则表达式可能是什么(没有斜杠包围的任何内容/) 我使用的是/^>*/,它可以工作并匹配斜杠中的字符串,也就是说,使用它我可以找到“/更少的费用/code/”,但我想否定它以找到相反的结果,即REC和AU013423 我需要帮助。谢谢如果您知道您只在查找字母数字数据,您可以使用正则表达式([A-Z0-9]+)/./([A-Z0-9]+),如果匹配,您将拥有包含第一个和最后一个文本字符

我有一个字符串
“REC/LESS-FEES/code/AU013423”

“REC”
“AU013423”
匹配的正则表达式可能是什么(没有斜杠包围的任何内容
/

我使用的是
/^>*/
,它可以工作并匹配斜杠中的字符串,也就是说,使用它我可以找到
“/更少的费用/code/”
,但我想否定它以找到相反的结果,即
REC
AU013423


我需要帮助。谢谢

如果您知道您只在查找字母数字数据,您可以使用正则表达式
([A-Z0-9]+)/./([A-Z0-9]+)
,如果匹配,您将拥有包含第一个和最后一个文本字符串的两个组

此代码打印
RECAU013423

final String s = "REC/LESS FEES/CODE/AU013423";
final Pattern regex = Pattern.compile("([A-Z0-9]+)/.*/([A-Z0-9]+)", Pattern.CASE_INSENSITIVE);
final Matcher matcher = regex.matcher(s);
if (matcher.matches()) {
    System.out.println(matcher.group(1) + matcher.group(2));
}
您可以根据需要调整正则表达式组以覆盖有效字符

^[^/]+|[^/]+$
匹配字符串中第一个斜杠之前或最后一个斜杠之后发生的任何内容(如果没有斜杠,则匹配整个字符串)

要在Java中迭代字符串中的所有匹配项,请执行以下操作:

Pattern regex = Pattern.compile("^[^/]+|[^/]+$");
Matcher regexMatcher = regex.matcher(subjectString);
while (regexMatcher.find()) {
    // matched text: regexMatcher.group()
    // match start: regexMatcher.start()
    // match end: regexMatcher.end()
} 
还有一个选择:

String s = "REC/LESS FEES/CODE/AU013423";
String[] results = s.split("/.*/");
System.out.println(Arrays.toString(results));
// [REC, AU013423]