RegEx να πάρει κειμένου μέσα σε ετικέτες

ψήφοι
2

Χρειάζομαι κανονικές εκφράσεις για να πάρει το κείμενο μέσα σε 2 ετικέτες.

Ας πούμε Θέλω μια σειρά επέστρεψε περιέχουν οποιοδήποτε κείμενο μέσα <data> και </data> ετικέτες. Ή οποιοδήποτε κείμενο μέσα στο «(» και «)» ετικέτες.

Πώς μπορώ να κάνω ότι με την τυπική έκφραση σε C #;


Ένα προηγμένο ερώτηση θα ήταν:

  1. Η συμβολοσειρά εισόδου είναι color = rgb (50,20,30)
  2. Πώς μπορώ να πάρω τα 3 αριθμούς σε 3 ξεχωριστά υποδοχές σειρά όπως επέστρεψε από τον επεξεργαστή τυπική έκφραση σε C #;
Δημοσιεύθηκε 09/12/2008 στις 17:10
πηγή χρήστη
Σε άλλες γλώσσες...                            


5 απαντήσεις

ψήφοι
4

Perl regexp θα ήταν

$string =~ /color=rgb\((\d+),(\d+),(\d+)\)/;
@array = ($1,$2,$3);

Αλλά ίσως χρειάζεστε περισσότερες πληροφορίες ότι αυτό.

Απαντήθηκε 09/12/2008 στις 17:13
πηγή χρήστη

ψήφοι
3

Από τη στιγμή που γίνεται ειδική μνεία C #, εδώ είναι το πώς θα κάνω ότι ακριβώς ανάλυσης:

private static readonly Regex RgbValuePattern = new Regex(@"(?<r>\d{1,3}) ?, ?(?<g>\d{1,3}) ?, ?(?<b>\d{1,3})",
                                                          RegexOptions.Compiled | RegexOptions.ExplicitCapture);

Στη συνέχεια, αργότερα ...

var match = RgbValuePattern.Match(value);

if (match.Success)
{
    int r = Int32.Parse(match.Groups["r"].Value, NumberFormatInfo.InvariantInfo);
    int g = Int32.Parse(match.Groups["g"].Value, NumberFormatInfo.InvariantInfo);
    int b = Int32.Parse(match.Groups["b"].Value, NumberFormatInfo.InvariantInfo);
    return Color.FromArgb(r, g, b);
}
Απαντήθηκε 09/12/2008 στις 18:29
πηγή χρήστη

ψήφοι
1

Χρησιμοποιώντας Regex να αναλύσει XML είναι συνήθως μια πολύ κακή ιδέα. Δείτε αυτή την απάντηση .

Απαντήθηκε 14/11/2009 στις 01:03
πηγή χρήστη

ψήφοι
1

Αυτή η παρόμοια ερώτηση έχει τις απαντήσεις που θα σας βοηθήσουν:

Απαντήθηκε 09/12/2008 στις 17:54
πηγή χρήστη

ψήφοι
0

Πιστεύω ότι θα προκύψουν σοβαρά προβλήματα όταν θέλετε να αναλύσει ωοτοκίας κατασκευές. Για παράδειγμα, όταν θέλετε να εξετάσει XML, όπως αυτή <data><data>123</data><data>456</data></data> για την εξαγωγή δεδομένων που περιλαμβάνονται στις εξόχως απόκεντρες <data>ετικέτες μια τυπική έκφραση μόνο του δεν θα είναι αρκετό. Απλά σας προειδοποιήσω να μην χρησιμοποιήσετε τυπική έκφραση, όπου υπάρχουν κάποιοι περισσότερο (ισχυρό και ειδικό) μεθόδους. Αναλυτές Ρεάλ XML θα πρέπει να λαμβάνονται υπόψη κατά την κάνει πιο σύνθετες εργασίες σε XML. 2 σεντ μου ...

Απαντήθηκε 09/12/2008 στις 17:35
πηγή χρήστη

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more