将正则表达式从JS风格转换为Golang风格?

时间:2019-12-24 13:11:12

标签: regex go

我正在尝试将某些正则表达式从ECMAScript样式转换为Golang样式,这里是:

((r|?)+)(( |\n)*)((?|e)+)(( |\n)*)((p|?)+)(( |\n)*)((?|o)+)(( |\n)*)((?|s)+)(( |\n)*)((t|?)+)

基本上,重点是匹配“ r?p O s t”之类的消息。 我试图用“ \ s”代替“”,但仍然无法正常工作。有什么想法吗?

2 个答案:

答案 0 :(得分:1)

这对你有用吗?

[r?]\s*[?e]\s*[p?]\s*[?o]\s*[?s]\s*[t?]

带有不区分大小写的标志

Demo & explanation

答案 1 :(得分:0)

您的示例不匹配,因为您的正则表达式不包含大写字母“ O”

您可以使用包含它的表达式:

((r|?)+)(( |\n)*)((?|e)+)(( |\n)*)((p|?)+)(( |\n)*)((?|o|O)+)(( |\n)*)((?|s)+)(( |\n)*)((t|?)+)

在您的Go代码中,请确保将这些引号与它一起使用:

`((r|?)+)(( |\n)*)((?|e)+)(( |\n)*)((p|?)+)(( |\n)*)((?|o|O)+)(( |\n)*)((?|s)+)(( |\n)*)((t|?)+)`

see here