Aşağıdaki metni kullanıyorum = "superilustrado e de capa dura?" Ve metindeki sözcükler arasındaki tüm boşlukları bulmak istiyorum. Aşağıdaki ifadeyi kullanıyorum = [\\p{L}[:punct:]][[:space:]][\\p{L}[:punct:]]
. İfade iyi çalışıyor ama "e de" arasındaki boşluğu bulabilir. Düzenli ifademde sorun olanı bilen var mı?Uzayları Bulmak için Normal İfade
5
A
cevap
3
Belki de izlemiyorum, ancak neden sadece [] kullanıyorsunuz?
13
Mekanlar, normal ifadenize bir boşluk karakteri koyarak kolayca bulunabilir.
Boşluk \s
ile bulunabilir.
Kelimeler arasında boşluk bulmak istiyorsanız, \b
sözcük sınır işaretini kullanın.
Bu iki kelime arasında tek bir boşluk eşleşir:.
"\b \b"
(eşleme başarısız nedeni \\p{L}
bir maçta karakteri içerdiğini olan e
tek karakter olduğundan, tarafından yemiş olur o sıfır genişlikli maçı olduğu için önceki maç ve e
sonra alanı için uyumlu olamaz. \b
bu sorunu ortadan kaldırır.)
0
// 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;
sayesinde senin açıklaman mantıklı. Ancak, ifadeyi noktalama işareti olan bir metinle birlikte kullandığımda, "JA imgenin de dahil olduğu düşünün, diğer şeyleri tamamlayın, superilustrado e de capa dura? Então, en iyi ve en iyi spikeri destekler!" ilustrado por ele mesmo! ", tüm alanları bulamıyor. Noktalama işaretiyle ilgilenen başka bir ifade eklemenin bir yolu var mı? – Aldo
@Aldo, neden sadece dizideki tüm alanları aramıyoruz? Eşleştirmek istemediğiniz başka alanlar var mı? –