Bu yanıtı yazarken , s
-flag ( dotall
- dot match linebreaks) kullanmak yerine yalnızca linebreaks ile eşleşmek zorunda kaldım .
Normal ifadeleri test etmek için kullanılan siteler genellikle \n
veya ile eşleşmeye çalışırken farklı davranır \r\n
.
farkettim
Regex101 yalnızca satır satırlarıyla eşleşir
\n
( örnek - sil\r
ve eşleşir)RegExr, ne açık
\n
ne de açık satır çizgileriyle eşleşir\r\n
vem
-flag ve\s
( örnek ) hariç, bir satır kesmesiyle eşleşmesi için bir şey bulamıyorumDebuggex daha farklı davranır:
in bu örnekte yalnızca maçları\r\n
ise
burada sadece maçları\n
belirtilen aynı bayrakları ve motor ile,
m
-Flag'ın (çok satırlı - bir satırın ^
başlangıcı ve $
bitişi ile eşleştiğini) tamamen biliyorum , ama bazen bu bir seçenek değil. İle aynı \s
çok, sekmeler ve boşluklar maçları gibi.
Unicode newline karakterini ( \u0085
) kullanmayı düşündüm , bu yüzden:
- Eşleşmeyi bir satır sonu (tercihen kullanılan dilden bağımsız olarak) düzenli bir ifadeye entegre etmenin güvenilir bir yolu var mı?
- Yukarıda belirtilen siteler neden farklı davranıyor (özellikle Debuggex, yalnızca bir kez
\n
ve yalnızca bir kez eşleşiyor\r\n
)?
\r?\n
her ikisini de \r\n
ve \n
satır sonlandırma dizilerini eşleştirmek için kullanıyorum . Eski \r
Mac sözdizimi için işe yaramaz , ancak bu günlerde oldukça nadirdir.
[\r\n]+
- ya da bunun gibi bir şey