Ik heb de volgende tekst = “superilustrado e de capa dura?”, en ik wil alle spaties tussen woorden in de tekst vinden. Ik gebruik de volgende uitdrukking = [\\p{L}[:punct:]][[:space:]][\\p{L}[:punct:]]
. De uitdrukking werkt prima, maar hij kan de spatie tussen de “e de” vinden. Weet iemand wat het probleem is met mijn reguliere expressie?
Antwoord 1, autoriteit 100%
Spaties kunnen eenvoudig worden gevonden door een spatie in uw regex te plaatsen.
Witruimte kan gevonden worden met \s
.
Als je witruimte tussen woorden wilt vinden, gebruik dan de \b
woordgrensmarkering.
Dit komt overeen met een enkele spatie tussen twee woorden:
"\b \b"
(De reden dat uw overeenkomst is mislukt, is dat \\p{L}
het teken in een overeenkomst bevat. Omdat e
slechts één teken is, wordt het opgeslokt door de vorige overeenkomst en kan niet worden gevonden voor de spatie na e
. \b
vermijdt dit probleem omdat het een nul-breedte overeenkomst is.)
Antwoord 2, autoriteit 20%
Misschien volg ik niet, maar waarom gebruik ik niet gewoon [ ]?
Antwoord 3, autoriteit 16%
// Setup
var testString = "How many spaces are there in this sentence?";
// Only change code below this line.
var expression = /\s+/g; // Change this line
// Only change code above this line
// This code counts the matches of expression in testString
var spaceCount = testString.match(expression).length;