ugrás a tartalomhoz

regexp String.split()-hez

Rakonczai Sándor · 2011. Jún. 21. (K), 13.20
Sziasztok!

Szükségem van egy olyan regexp-re String.split()-hez ami akár több egymást követő /-nél \/ kivételével bontja ezt "File/Open\\/Save". Odáig jutottam, hogy bontsa a /-(ek)nél. Mivel bővítsem a regexp-et, hogy ne bontsa \/-(ek)nél? Ezzel próbálkoztam:
String menu = "File/Open\\/Save";
String regexp = "[/+&&[^\\\\/]]";
Ez nem jó, mert /+ ellentéte [^\\\\/].
 
1

Negative look behind

Poetro · 2011. Jún. 21. (K), 13.43
(?<!\\)/+
Mondjuk nem tudom, ez Java-ban támogatott-e.
Eredmény: File, Open\\/Save
2

Exception in thread "main"

Rakonczai Sándor · 2011. Jún. 21. (K), 15.00
Exception in thread "main" java.util.regex.PatternSyntaxException: Look-behind group does not have an obvious maximum length near index 7
(?<!\)/+
       ^
at java.util.regex.Pattern.error(Pattern.java:1713)
at java.util.regex.Pattern.group0(Pattern.java:2488)
at java.util.regex.Pattern.sequence(Pattern.java:1806)
at java.util.regex.Pattern.expr(Pattern.java:1752)
at java.util.regex.Pattern.compile(Pattern.java:1460)
at java.util.regex.Pattern.<init>(Pattern.java:1133)
at java.util.regex.Pattern.compile(Pattern.java:823)
at java.lang.String.split(String.java:2292)
at java.lang.String.split(String.java:2334)
at notepad.Notepad.main(Notepad.java:20)
Java Result: 1

?
3

Escape

Poetro · 2011. Jún. 21. (K), 15.15
Nem escapelted a \ jelet. Amit én írtam reguláris kifejezésnek az (?<!\\)/+ ami nem egyezik meg a "(?<!\\)/+" stringgel. Talán a következő működik Java alatt: "(?<!\\\\)/+"
5

Köszönöm megosztani néhány

abadam · 2011. Szep. 21. (Sze), 07.54
Köszönöm megosztani néhány információt nagy itt, remélem, tud segíteni, ha csatlakozik, vagy látogasson el, lépjen kapcsolatba a címét. Kívánja a siker és az egészség. Viszlát, remélem gyors választ a következő alkalommal.




____________

Discount Golf
TaylorMade Burner 2.0 Irons
6

Thank you to share some

Hidvégi Gábor · 2011. Szep. 21. (Sze), 10.27
Thank you to share some pieces of information great here, I hope, you can help, if you join, or visit, contact your address. He wishes the success and the good health. See you, I hope quick answer the next time.

A központozása viszont jobb, mint sok magyar anyanyelvűé.
4

Köszönöm a 2. regexp

Rakonczai Sándor · 2011. Jún. 22. (Sze), 10.08
Köszönöm a 2. regexp String.split()-nél működik, de Pattern.compile()-nál már nem, pontosabban nem talál egyezést a Matcher.matcher() pedig Matcher.groupCount() szerint van 1 egyezés.
run:
/*Matcher m = p.matcher("File/Open\\/Save");
System.out.print(m.groupCount())*/
1 BUILD SUCCESSFUL (total time: 1 second)

//System.out.print(m.group())
Exception in thread "main" java.lang.IllegalStateException: No match found
A groupCount nem számolja egyezésnek az egész mintát, tehát valamilyen van, de, ha ki akarom íratni group()-pal akkor nincs egyezés.
A mintát erre "(?<!\\\\)(/+)" módosítottam, mert azokat a /-(eke)t akarom megtalálni amik előtt nincs \.