我正在搜索至少包含 3 个单词的句子的模式。我现在想做的是:
REGEXP '^[A-Za-z0-9_]* [A-Za-z0-9_]* [A-Za-z0-9_]*'
但是我想出了 1474 个结果,当我进入 excel 用公式仔细检查结果时,我想出了 1893。我错过了一些模式吗?因为 excel 注意到这句话L'orfeo, Act 3 Sinfonia (Orchestra)
,但 REGEXP 没有。
我正在搜索至少包含 3 个单词的句子的模式。我现在想做的是:
REGEXP '^[A-Za-z0-9_]* [A-Za-z0-9_]* [A-Za-z0-9_]*'
但是我想出了 1474 个结果,当我进入 excel 用公式仔细检查结果时,我想出了 1893。我错过了一些模式吗?因为 excel 注意到这句话L'orfeo, Act 3 Sinfonia (Orchestra)
,但 REGEXP 没有。
*
表示 0 或更多;我想你的意思是+
在这种情况下。+
代表1个或更多。您也可以尝试使用字符类\w
来提高可读性,因为\w
它通常等同于[a-zA-Z0-9_]
.
好吧,您的正则表达式不包含撇号……</p>
尝试任何不是空格的东西:
^\S+\s+\S+\s+\S+
您的字符类不包括'
,,
因此正则表达式无法匹配。你需要
^[\w',]+\s[\w',]+\s[\w',]+
\w
包括[a-zA-Z0-9_]
. 我已经添加'
并,
制作它[\w',]
。如果你有很多这样的非字母数字字符可以成为你的单词的一部分;最好匹配\S
ie 而不是空格(空格、换行符等)
^\S+(\s\S+){2,}
注意,使用+
任何地方(而不是*
)来匹配一次或多次出现的模式(而不是零次或多次)。