Toon posts:

[Java] Toegestane MaxLength van een RegEx

Pagina: 1
Acties:
  • 679 views

Onderwerpen


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Ik wil geen MaxLength via een RegExp definieren, maar ik wil via een Method de MaxLength van een RegEx krijgen.

Voorbeeld RegEx:
code:
1
2
3
4
<constant>
    <constant-name>phone</constant-name>
    <constant-value>^\(?(\d{3})\)?[-| ]?(\d{3})[-| ]?(\d{4})$</constant-value>
</constant>


Nu wil ik voor een XHTML Input een maxlength definieren, niet handmatig, maar automatisch. Zodat een verandering in de validation-rules automatisch wordt overgenomen.

En bedankt.

Acties:
  • 0 Henk 'm!

  • pedorus
  • Registratie: Januari 2008
  • Niet online
In de source van Pattern.java wordt wel een maxLength bijgehouden, maar voor zover ik weet kan je die niet laten retourneren. Maar op zich zou dit niet een hele moeilijke oefening moeten zijn.
Als je code wil die niet altijd werkt, niet mooi is, en vrij traag is, dan kun je natuurlijk snel zijn:
Java:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
class RXTest{
    public static void main(String argv[]) {
        String t="^\\(?(\\d{3})\\)?[-| ]?(\\d{3})[-| ]?(\\d{4})$";
        t=t.replaceAll("\\\\.","a");
        t=t.replaceAll("\\[[^\\]]*\\]","a");
        t=t.replaceAll("[$?^()]","");
        String sstr="";
        for(int i=1;i<20;i++) { //kijk ipv dit naar Matcher
            t=t.replaceAll("\\{" + i + "\\}",sstr);
            sstr+="a";
        }    
        System.out.println(t.length());
        //het juiste antwoord is 14, ga door voor de koelkast ;)
    }
}


Anders kun je eens kijken naar parseermethoden. Eigenlijk is het grootste open probleem hier "|", wat op dezelfde manier ook wel op te lossen is. En dan natuurlijk look-forward, -behind, etc...

Ik neem aan dat je dit wil gebruiken om de lengte van database-velden in te stellen ofzo?

Vitamine D tekorten in Nederland | Dodelijk coronaforum gesloten


Acties:
  • 0 Henk 'm!

  • Creepy
  • Registratie: Juni 2001
  • Laatst online: 21-09 21:47

Creepy

Tactical Espionage Splatterer

Verwijderd schreef op woensdag 20 februari 2008 @ 11:18:
Ik wil geen MaxLength via een RegExp definieren, maar ik wil via een Method de MaxLength van een RegEx krijgen.

Voorbeeld RegEx:
code:
1
2
3
4
<constant>
    <constant-name>phone</constant-name>
    <constant-value>^\(?(\d{3})\)?[-| ]?(\d{3})[-| ]?(\d{4})$</constant-value>
</constant>


Nu wil ik voor een XHTML Input een maxlength definieren, niet handmatig, maar automatisch. Zodat een verandering in de validation-rules automatisch wordt overgenomen.
Eeh. Ok. En nu moeten wij het voor je gaan maken? Zo werkt het hier niet. We gaan er vanuit dat je in eerste instantie ook zelf wat probeert en dat je ook aangeeft wat je hebt geprobeerden wat daar dan niet mee lukte.
En bedankt.
Graag gedaan. Maar op deze manier is het gewoon een scriptrequest en die zien we hier liever niet. Gezien de tijd dat je hier rond loopt zou je dat moeten weten. En zou het ook erg fijn zijn als je wat actiever zou reageren in topics van anderen i.p.v. GoT als een veredelde helpdesk te gebruiken

[ Voor 9% gewijzigd door Creepy op 20-02-2008 20:07 ]

"I had a problem, I solved it with regular expressions. Now I have two problems". That's shows a lack of appreciation for regular expressions: "I know have _star_ problems" --Kevlin Henney


Dit topic is gesloten.