Regex Pattern, aby znaleźć puste miejsce

Sep 28 2020

Jest to wartość pojedynczego pola i należy ją podzielić na podstawie pustych wierszy.

Eg:

abc street 
xyz 
city 785263 

lmn street 
abc 
city 462738 

Próbowałem AddressList = address.split ('\ n {2}'), ale dawka nie działa.

Odpowiedzi

3 sfdcfox Sep 28 2020 at 11:35

addresses.split('\n{2}')działa tylko wtedy, gdy w rzeczywistości są to tylko znaki nowej linii ( \n). Istnieją trzy typowe połączenia nowej linii: LF ( \n), CR ( \r) i CRLF ( \r\n).

Aby zachować zgodność z tymi wszystkimi, spróbuj:

addresses.split('(?m)\\s*^\\s*$\\s*')

To składa się z kilku części:

(?m) multiline mode enabled
\\s* zero or more whitespace
^ Beginning of a line (multiline mode)
$ End of a line (multiline mode)

A więc: „W trybie wielowierszowym znajdź wszystkie spacje, po których następuje dowolny początek wiersza, z dowolnymi spacjami, następnie koniec wiersza, po którym następują dalsze spacje”.

Lub możesz zamienić CRLF i Cr na tylko LF, wtedy oryginalny kod powinien działać:

addresses.replaceAll('(\\r\\n|\\r)','\n').split('\n{2}')