首页 > 文章列表 > Java 到 Go 的正则表达式转换

Java 到 Go 的正则表达式转换

441 2024-04-15
问题内容

(?<=^|[a-z]-|[sp{punct}&&[^-]])([a-z][a-z0-9_]*-d+)(?![^w_])

我使用库 reregexp2

这个 re 在 go 中不起作用,会报错:

regexp2: Compile(`(?<=^|[a-z]-|[sp{Punct}&&[^-]])([A-Z][A-Z0-9_]*-d+)(?![^W_])`): error parsing regexp: unknown unicode category, script, or property 'Punct' in `(?<=^|[a-z]-|[sp{Punct}&&[^-]])([A-Z][A-Z0-9_]*-d+)(?![^W_])`

希望能正常执行


正确答案


如果你看一下 Java正则表达式模式文档,您会看到 p{Punct}Punctuation: One of !"#$%&'()*+,-./:;<=>?@[] ^_{|}~

p{Punct} 标点符号:!"#$%&'()*+,-./:;<=>?@[]^_`{|}~

之一

那么您需要将其转换为 go 正则表达式,检查 regexp 语法文档