2

我正在尝试使用 google 电子表格中的正则表达式从 url 中提取。但是,电子表格返回#VALUE!以下错误: 无效的正则表达式:无效的 perl 运算符:(?<

这是我正在使用的正则表达式:(?<=raid_boss=)[a-zA-Z0-9_]+

一个示例 url 将包含一个变量,上面写着raid_boss=name. 此正则表达式应提取名称。它适用于我的测试程序,但不适用于谷歌电子表格。

以下是谷歌电子表格中单元格的确切内容:=REGEXEXTRACT( B1 ; "/(?<=raid_boss=)[-a-zA-{}-9_]+" )

任何见解或帮助将不胜感激,谢谢!

4

2 回答 2

2

听起来 Google Docs 使用的任何正则表达式引擎都不支持后向断言。它们是一个相对罕见的功能。

但是如果你使用捕获,REGEXEXTRACT 将返回捕获的文本,所以你可以这样做:

=REGEXEXTRACT( B1 ; "raid_boss=([a-zA-Z0-9_]+)" )
于 2012-05-04T00:24:02.130 回答
0

Javascript 不是问题 - Google 表格使用RE2,它缺乏后向功能以及其他有用的东西。

你可以使用:

regexextract(B1, ".*raid_boss=(.*)")  

或者如果不起作用,则使用 FIND、SUBSTITUTE 等本机工作表功能

找到一个好的正则表达式测试工具是很棘手的——例如,您可以制作一些在http://rubular.com/中有效但在 GSheets 中失败的东西。您需要确保您的工具支持 RE2 风格,例如:https ://regoio.herokuapp.com/

于 2016-11-16T02:36:05.760 回答