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 \nveya 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\rve eşleşir)RegExr, ne açık
\nne 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\nise
burada sadece maçları\nbelirtilen 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
\nve yalnızca bir kez eşleşiyor\r\n)?
\r?\nher ikisini de \r\nve \nsatır sonlandırma dizilerini eşleştirmek için kullanıyorum . Eski \rMac sözdizimi için işe yaramaz , ancak bu günlerde oldukça nadirdir.
[\r\n]+- ya da bunun gibi bir şey