我有一個字符串"REC/LESS FEES/CODE/AU013423"
。RegEX:如何匹配未包圍的字符串
可能是什麼正則表達式匹配表達式"REC"
和"AU013423"
(任何沒有被斜線/
包圍)
我使用/^>*/
,它的工作原理和使用該內斜線的即字符串匹配,我能夠找到"/LESS FEES/CODE/"
,但我想否定此找到相反,即REC
和AU013423
。
需要幫助。謝謝
我有一個字符串"REC/LESS FEES/CODE/AU013423"
。RegEX:如何匹配未包圍的字符串
可能是什麼正則表達式匹配表達式"REC"
和"AU013423"
(任何沒有被斜線/
包圍)
我使用/^>*/
,它的工作原理和使用該內斜線的即字符串匹配,我能夠找到"/LESS FEES/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]