与此等效的 erlang 正则表达式是什么?

What is the erlang regex equivalent of this?

我的正则表达式的主题是

"Digest realm=\"Protected Area\", nonce=\"MTQzNTMwMDI5OSA2ZmIxYWEzYzNkZjQzNmVlZDdiMjU1ZjZjNzQwYjJkNA==\", opaque=\"610a2ee688cda9e724885e23cd2cfdee\", qop=\"auth\""

以下正则表达式适用于 Ruby。 http://rubular.com/r/m3SRmHUd5V

/([\w\s]+)=\"([\w\s]+)/

但是,我无法找到如何在 Erlang 中执行相同的操作。我试过了,但没用。

RegexS = "([\w\s]+)=\\"([\w\s]+)"

re:run(Subject,RegexS, [global, {capture, first, list}]).

非常感谢任何帮助。谢谢

您需要转义 所有 反斜杠。

1> Subject = "Digest realm=\"Protected Area\", nonce=\"MTQzNTMwMDI5OSA2ZmIxYWEzYzNkZjQzNmVlZDdiMjU1ZjZjNzQwYjJkNA==\", opaque=\"610a2ee688cda9e724885e23cd2cfdee\", qop=\"auth\"".
"Digest realm=\"Protected Area\", nonce=\"MTQzNTMwMDI5OSA2ZmIxYWEzYzNkZjQzNmVlZDdiMjU1ZjZjNzQwYjJkNA==\", opaque=\"610a2ee688cda9e724885e23cd2cfdee\", qop=\"auth\""
2> RegexS = "([\w\s]+)=\\"([\w\s]+)".
"([\w\s]+)=\\"([\w\s]+)"
3> re:run(Subject,RegexS, [global, {capture, first, list}]).
{match,[["Digest realm=\"Protected Area"],
        [" nonce=\"MTQzNTMwMDI5OSA2ZmIxYWEzYzNkZjQzNmVlZDdiMjU1ZjZjNzQwYjJkNA"],
        [" opaque=\"610a2ee688cda9e724885e23cd2cfdee"],
        [" qop=\"auth"]]}
4> io:format("~p => /~s/~n", [RegexS, RegexS]).
"([\w\s]+)=\\"([\w\s]+)" => /([\w\s]+)=\"([\w\s]+)/
ok
5>

但您不必反斜杠 " 因为 " 在正则表达式中没有特殊含义。

5> RegexS2 = "([\w\s]+)=\"([\w\s]+)".                   
"([\w\s]+)=\"([\w\s]+)"
6> re:run(Subject,RegexS2, [global, {capture, first, list}]).
{match,[["Digest realm=\"Protected Area"],
        [" nonce=\"MTQzNTMwMDI5OSA2ZmIxYWEzYzNkZjQzNmVlZDdiMjU1ZjZjNzQwYjJkNA"],
        [" opaque=\"610a2ee688cda9e724885e23cd2cfdee"],
        [" qop=\"auth"]]}
7> v(-1) =:= v(3).
true
8> io:format("~p => /~s/~n", [RegexS2, RegexS2]).            
"([\w\s]+)=\"([\w\s]+)" => /([\w\s]+)="([\w\s]+)/
ok
9>