Google 工作表的正则表达式匹配语法
Regexmatch syntax for Google Sheets
单元格 A1 包含:
I finally found the best dance partner!! #ad, check out the link in bio
单元格 B1 包含:
=REGEXMATCH(A1,"/#[aA][dD](?![A-z]|[0-9]|-|_|\/|\)/")
According to different regex testers,模式
#[aA][dD](?![A-z]|[0-9]|-|_|\/|\)
有效且应与 A1 中的字符串匹配。 REGEXMATCH 应该 return TRUE,而不是错误。我也试过没有开头和尾部斜线的公式无济于事:
=REGEXMATCH(L2,"#[aA][dD](?![A-z]|[0-9]|-|_|\/|\)")
我在这两种情况下遇到的错误是:
"Function REGEXMATCH parameter 2 value
"#[aA]dD" is not a valid regular
expression."
我不知道 Google 工作表的正则表达式语法有什么问题,而且我找不到 Google 或其他人在线提供的任何文档。
RE2 库不支持先行。也不支持带分隔符的正则表达式文字符号,必须删除第一个和最后一个斜杠,否则它们将被解析为正则表达式模式的一部分。 [A-z]
不只是匹配字母,您应该将其写成 [A-Za-z]
以匹配任何 ASCII 字母。
而不是 (?![A-z]|[0-9]|-|_|\/|\)
(等于 (?![A-Za-z0-9_/\-])
)使用 (?:$|[^a-z0-9_/\-])
:
=REGEXMATCH(A1,"(?i)#ad(?:$|[^a-z0-9_/\-])")
(?i)
是不区分大小写的修饰符,不用写[aA]
.
详情
(?i)
- 不区分大小写模式开启
#ad
- #ad
子字符串
(?:$|[^a-z0-9_/\-])
- 字符串结尾 ($
) 或 (|
) 除字母数字以外的任何字符,_
,/
, \
或 -
字符。
单元格 A1 包含:
I finally found the best dance partner!! #ad, check out the link in bio
单元格 B1 包含:
=REGEXMATCH(A1,"/#[aA][dD](?![A-z]|[0-9]|-|_|\/|\)/")
According to different regex testers,模式
#[aA][dD](?![A-z]|[0-9]|-|_|\/|\)
有效且应与 A1 中的字符串匹配。 REGEXMATCH 应该 return TRUE,而不是错误。我也试过没有开头和尾部斜线的公式无济于事:
=REGEXMATCH(L2,"#[aA][dD](?![A-z]|[0-9]|-|_|\/|\)")
我在这两种情况下遇到的错误是:
"Function REGEXMATCH parameter 2 value "#[aA]dD" is not a valid regular expression."
我不知道 Google 工作表的正则表达式语法有什么问题,而且我找不到 Google 或其他人在线提供的任何文档。
RE2 库不支持先行。也不支持带分隔符的正则表达式文字符号,必须删除第一个和最后一个斜杠,否则它们将被解析为正则表达式模式的一部分。 [A-z]
不只是匹配字母,您应该将其写成 [A-Za-z]
以匹配任何 ASCII 字母。
而不是 (?![A-z]|[0-9]|-|_|\/|\)
(等于 (?![A-Za-z0-9_/\-])
)使用 (?:$|[^a-z0-9_/\-])
:
=REGEXMATCH(A1,"(?i)#ad(?:$|[^a-z0-9_/\-])")
(?i)
是不区分大小写的修饰符,不用写[aA]
.
详情
(?i)
- 不区分大小写模式开启#ad
-#ad
子字符串(?:$|[^a-z0-9_/\-])
- 字符串结尾 ($
) 或 (|
) 除字母数字以外的任何字符,_
,/
,\
或-
字符。