[英]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>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.