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]