Ich brauche die Fähigkeit, Gruppen in regulären Ausdrücken mit Namen in r zu erfassen. Ich teste den Code, der auf dieser Seite [Rd] Named capture in regexp erklärt wird und das Beispiel funktioniert ohne Problem. Ich versuche, diesen Code anzupassen, um einfache reguläre Ausdrücke zu lösen.Named Capture in Regexp
(xxxx)(?<id>\w{4})(?<number>\d{5})
Weitere Details finden Sie den Code here
ich versuche, es zu tun in r
regex = "(xxxx) (?<id>[0-9A-Za-z]{4}) (?<number>[0-9]{5})"
notable = "xxxxcn0700814"
regexpr(regex,notable,perl = TRUE)
und es war meine Ausgabe für diesen Code
[1] -1
attr(,"match.length")
[1] -1
attr(,"useBytes")
[1] TRUE
attr(,"capture.start")
id number
[1,] -1 -1 -1
attr(,"capture.length")
id number
[1,] -1 -1 -1
attr(,"capture.names")
[1] "" "id" "number"
Ich kann sehen, Was ist das Problem damit, weil dieser Code dem Code der Webseite ähnlich ist?
Vielen Dank im Voraus
Also was genau ist das Problem hier? Ich sehe die erfassten Namen in der Ausgabe. Offenbar haben Sie Leerzeichen in Ihrem regulären Ausdruck, aber nicht in Ihrem Ziel. Ist das das "Problem"? – MrFlick
Fügen Sie '(? X)' am Muster hinzu oder entfernen Sie Leerzeichen aus dem Muster. –