Reputation: 24948
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()}")
}
Upvotes: 1
Views: 174
Reputation: 24948
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()
Upvotes: 0
Reputation: 81929
In this case, you should simply remove line breaks with replace
:
val regEx = """long
string
with
breaks""".replace("\n", "").toRegex()
To remove the margins, you can add #
as margin to distinguish it from |
which is used for or
in the reqex
and use trimMargin
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)""".trimMargin("#").replace("\n","").toRegex()
Upvotes: 3