# Splitting RegEx in multiple lines

**URL:** <https://discuss.kotlinlang.org/t/splitting-regex-in-multiple-lines/7265>\
**Category:** Support\
**Created:** [March 31, 2018, 8:45pm UTC](https://discuss.kotlinlang.org/t/splitting-regex-in-multiple-lines/7265 "2018-03-31T20:45:51Z")\
**Posts on this page:** 3\
**Page:** 1

<div class="post-metadata">

**Author:** ![hasan.oryx](https://sea1.discourse-cdn.com/flex019/user_avatar/discuss.kotlinlang.org/hasan.oryx/32/5515_2.png) [@hasan.oryx](https://discuss.kotlinlang.org/u/hasan.oryx)\
**Post date:** [March 31, 2018, 8:45pm UTC](https://discuss.kotlinlang.org/t/splitting-regex-in-multiple-lines/7265/1 "2018-03-31T20:45:51Z")

</div>

I’ve this long `RegEx`:

```
val regEx = """(?i)((where|were|\bw)\s*(are|r)\s*(you|u))
|(Dónde estás)|(Donde estas)
|(Ku jeni ju)|(Non zaude)|(Дзе вы знаходзіцеся)|(Gdje si ti)|(Къде си)|(On ets)
|(Gdje si)|(Kde jsi)|(Hvor er du)|(Waar ben je)|(Kus sa oled)|(Missä sinä olet)
|(Où es tu)|(Onde estás)|(Wo bist du)|(Που είσαι)|(Merre jársz)|(Hvar ertu)
|(Hvor er du)|(Gdzie jesteś)|(Onde está você)|(Unde esti)|(Где ты)|(Где си)
|(Kde si)|(Kje si)|(Var är du)|(Де ти)|(Ble ydych chi)|(ווו זענען איר)
|(Որտեղ եք դուք)|(Haradasan)|(你在哪里)|(你在哪裡)|(სად ხარ)|(Ubi es)
|(Qhov twg yog koj)|(どこにいますか)|(Сен қайдасың)|(Та хаана байна вэ)|(Ту дар куҷо)
|(คุณอยู่ที่ไหน)|(اپ کہاں ہیں)|(Qayerdasiz)|(Bạn đang ở đâu)|(איפה אתה)|(کجایی)|(Neredesin)
|(Waar is jy)|(Muli kuti)|(Ina ku ke)|(Ebee ka ị nọ)|(U hokae)|(Xaggee baad joogtaa)
|(Uko wapi)|(Ibo lo wa)|(Ukuphi)|(Hain ka)|(Nasaan ka)|(Kamu di mana)
|(Aiza ianao)|(Di manakah anda)|(Kei hea koe)|(Kie vi estas)|(Ki kote w ye)
(?-i)""".toRegex()

```

When I wrote it the way above, it is not executing properly, apparently it understand there are extra spaces required due to the lines split, so I forced to make them in single long line:

```
val regEx = """(وينك)|(وينكي)|(وينكم)|(فينك)|(فينكي)|(فينكم)|(أين أنت)|(اين انت)|(أين أنتم)|(اين انتم)|(?i)(where|were|\bw)\s*(are|r)\s*(you|u)|(Dónde estás)|(Donde estas)|(Ku jeni ju)|(Non zaude)|(Дзе вы знаходзіцеся)|(Gdje si ti)|(Къде си)|(On ets)|(Gdje si)|(Kde jsi)|(Hvor er du)|(Waar ben je)|(Kus sa oled)|(Missä sinä olet)|(Où es tu)|(Onde estás)|(Wo bist du)|(Που είσαι)|(Merre jársz)|(Hvar ertu)|(Hvor er du)|(Gdzie jesteś)|(Onde está você)|(Unde esti)|(Где ты)|(Где си)|(Kde si)|(Kje si)|(Var är du)|(Де ти)|(Ble ydych chi)|(ווו זענען איר)|(Որտեղ եք դուք)|(Haradasan)|(你在哪里)|(你在哪裡)|(სად ხარ)|(Ubi es)|(Qhov twg yog koj)|(どこにいますか)|(Сен қайдасың)|(Та хаана байна вэ)|(Ту дар куҷо)|(คุณอยู่ที่ไหน)|(اپ کہاں ہیں)|(Qayerdasiz)|(Bạn đang ở đâu)|(איפה אתה)|(کجایی)|(Neredesin)|(Waar is jy)|(Muli kuti)|(Ina ku ke)|(Ebee ka ị nọ)|(U hokae)|(Xaggee baad joogtaa)|(Uko wapi)|(Ibo lo wa)|(Ukuphi)|(Hain ka)|(Nasaan ka)|(Kamu di mana)|(Aiza ianao)|(Di manakah anda)|(Kei hea koe)|(Kie vi estas)|(Ki kote w ye)(?-i)""".toRegex()

```

What is the correct way to split them in multiple lines so the code can be easy readable:

below is the code block:

```
val regEx = """(وينك)|(وينكي)|(وينكم)|(فينك)|(فينكي)|(فينكم)|(أين أنت)|(اين انت)|(أين أنتم)|(اين انتم)|(?i)(where|were|\bw)\s*(are|r)\s*(you|u)|(Dónde estás)|(Donde estas)|(Ku jeni ju)|(Non zaude)|(Дзе вы знаходзіцеся)|(Gdje si ti)|(Къде си)|(On ets)|(Gdje si)|(Kde jsi)|(Hvor er du)|(Waar ben je)|(Kus sa oled)|(Missä sinä olet)|(Où es tu)|(Onde estás)|(Wo bist du)|(Που είσαι)|(Merre jársz)|(Hvar ertu)|(Hvor er du)|(Gdzie jesteś)|(Onde está você)|(Unde esti)|(Где ты)|(Где си)|(Kde si)|(Kje si)|(Var är du)|(Де ти)|(Ble ydych chi)|(ווו זענען איר)|(Որտեղ եք դուք)|(Haradasan)|(你在哪里)|(你在哪裡)|(სად ხარ)|(Ubi es)|(Qhov twg yog koj)|(どこにいますか)|(Сен қайдасың)|(Та хаана байна вэ)|(Ту дар куҷо)|(คุณอยู่ที่ไหน)|(اپ کہاں ہیں)|(Qayerdasiz)|(Bạn đang ở đâu)|(איפה אתה)|(کجایی)|(Neredesin)|(Waar is jy)|(Muli kuti)|(Ina ku ke)|(Ebee ka ị nọ)|(U hokae)|(Xaggee baad joogtaa)|(Uko wapi)|(Ibo lo wa)|(Ukuphi)|(Hain ka)|(Nasaan ka)|(Kamu di mana)|(Aiza ianao)|(Di manakah anda)|(Kei hea koe)|(Kie vi estas)|(Ki kote w ye)(?-i)""".toRegex()

fun main(args: Array<String>) {
    val text : String = "where r u"
    val matchResult = regEx.find(text)
    println("Hello, world!: ${matchResult?.value.orEmpty()}")
}

```

---

<div class="post-metadata">

**Author:** ![SackCastellon](https://sea1.discourse-cdn.com/flex019/user_avatar/discuss.kotlinlang.org/sackcastellon/32/4553_2.png) [@SackCastellon](https://discuss.kotlinlang.org/u/SackCastellon)\
**Post date:** [April 1, 2018, 1:06am UTC](https://discuss.kotlinlang.org/t/splitting-regex-in-multiple-lines/7265/2 "2018-04-01T01:06:34Z")

</div>

The only thing I could come up with was to add `.replace("\n", "")` before converting it to a regex (`.toRegex()`), the only inconvenience is that the string has no _regex highlight_ now 🤷‍♂️

```
val regEx = """(?i)((where|were|\bw)\s*(are|r)\s*(you|u))
|(Dónde estás)|(Donde estas)
|(Ku jeni ju)|(Non zaude)|(Дзе вы знаходзіцеся)|(Gdje si ti)|(Къде си)|(On ets)
|(Gdje si)|(Kde jsi)|(Hvor er du)|(Waar ben je)|(Kus sa oled)|(Missä sinä olet)
|(Où es tu)|(Onde estás)|(Wo bist du)|(Που είσαι)|(Merre jársz)|(Hvar ertu)
|(Hvor er du)|(Gdzie jesteś)|(Onde está você)|(Unde esti)|(Где ты)|(Где си)
|(Kde si)|(Kje si)|(Var är du)|(Де ти)|(Ble ydych chi)|(ווו זענען איר)
|(Որտեղ եք դուք)|(Haradasan)|(你在哪里)|(你在哪裡)|(სად ხარ)|(Ubi es)
|(Qhov twg yog koj)|(どこにいますか)|(Сен қайдасың)|(Та хаана байна вэ)|(Ту дар куҷо)
|(คุณอยู่ที่ไหน)|(اپ کہاں ہیں)|(Qayerdasiz)|(Bạn đang ở đâu)|(איפה אתה)|(کجایی)|(Neredesin)
|(Waar is jy)|(Muli kuti)|(Ina ku ke)|(Ebee ka ị nọ)|(U hokae)|(Xaggee baad joogtaa)
|(Uko wapi)|(Ibo lo wa)|(Ukuphi)|(Hain ka)|(Nasaan ka)|(Kamu di mana)
|(Aiza ianao)|(Di manakah anda)|(Kei hea koe)|(Kie vi estas)|(Ki kote w ye)
(?-i)""".replace("\n", "").toRegex()

```

---

<div class="post-metadata">

**Author:** ![hasan.oryx](https://sea1.discourse-cdn.com/flex019/user_avatar/discuss.kotlinlang.org/hasan.oryx/32/5515_2.png) [@hasan.oryx](https://discuss.kotlinlang.org/u/hasan.oryx)\
**Post date:** [April 1, 2018, 7:06pm UTC](https://discuss.kotlinlang.org/t/splitting-regex-in-multiple-lines/7265/3 "2018-04-01T19:06:15Z")

</div>

I found the best way could be:

```
val regEx = """
    (وينك)|(وينكي)|(وينكم)|(فينك)|(فينكي)|(فينكم)|(أين أنت)|(اين انت)|(أين أنتم)|(اين انتم)
    |(?i)
    (where|were|\bw)\s*(are|r)\s*(you|u)|(Dónde estás)|(Donde estas)|(Ku jeni ju)
    |(Non zaude)|(Дзе вы знаходзіцеся)|(Gdje si ti)|(Къде си)|(On ets)|(Gdje si)|(Kde jsi)
    |(Hvor er du)|(Waar ben je)|(Kus sa oled)|(Missä sinä olet)|(Où es tu)|(Onde estás)
    |(Wo bist du)|(Που είσαι)|(Merre jársz)|(Hvar ertu)|(Hvor er du)|(Gdzie jesteś)
    |(Onde está você)|(Unde esti)|(Где ты)|(Где си)|(Kde si)|(Kje si)|(Var är du)
    |(Де ти)|(Ble ydych chi)|(ווו זענען איר)|(Որտեղ եք դուք)|(Haradasan)|(你在哪里)|(你在哪裡)
    |(სად ხარ)|(Ubi es)|(Qhov twg yog koj)|(どこにいますか)|(Сен қайдасың)|(Та хаана байна вэ)
    |(Ту дар куҷо)|(คุณอยู่ที่ไหน)|(اپ کہاں ہیں)|(Qayerdasiz)|(Bạn đang ở đâu)|(איפה אתה)|(کجایی)
    |(Neredesin)|(Waar is jy)|(Muli kuti)|(Ina ku ke)|(Ebee ka ị nọ)|(U hokae)
    |(Xaggee baad joogtaa)|(Uko wapi)|(Ibo lo wa)|(Ukuphi)|(Hain ka)|(Nasaan ka)|(Kamu di mana)
    |(Aiza ianao)|(Di manakah anda)|(Kei hea koe)|(Kie vi estas)|(Ki kote w ye)
    (?-i)""".trimIndent().replace("\n","").toRegex()

```
