我有一个片段
re.sub(r"""\s*(\p{LD}+)\s+NEAR/(\d)\s+(\p{LD}+)\s*""",r""""$1 $3"~$2""",'foo NEAR/4 bar')
在python中。在
预期输出
“foo bar”~4
但现在我
^{pr2}$我正在尝试将scala代码转换为python。 scala代码是
val near_rex = """\s*(\p{LD}+)\s+NEAR/(\d)\s+(\p{LD}+)\s*""".r;
val out = near_rex.replaceAllIn("foo NEAR/4 bar", """"$1 $3"~$2""");
scala代码段在这里运行良好http://www.simplyscala.com/
我不知道scala,所以我不知道
\p{LD}+
应该匹配什么,但是使用\w
来匹配[a-zA-Z0-9_]
(foo/bar),regexp是可以的:为了返回捕获的组,必须使用
\1
,\2
。。。而不是$1
。在正如Avinash Raj在评论中建议的那样,您可以使用简单的引号来去掉三重引号:
^{pr2}$此外,
\p{L}
不是Scala特有的(Amal Murali的功劳),而是用于匹配属于"letter" category的unicode字符。在相关问题 更多 >
编程相关推荐