如何在文本字符串列表中搜索多个单词或一组单词?
How can I search a list of text strings for more than one word or collection of words?
我想搜索文本字符串列表,查找其中哪些字符串包含多个单词或短语,并获取相应行的值。例如,如果我有以下列,我如何搜索它以找到其中包含 "red" 或 "blue jean" 的行,并获取它们的值,而不考虑大小写 (upper/lower)?
我知道我可以使用 List.FindText({[Column1]},"red")
来查找和 return 使用 "red" 的所有行的值,但我不知道如何查找和 [=24] =] 一次包含 "red" 或 "blue jean" 的所有行的值。
您可以使用 List.Transform 和 Text.Contains 的组合:
let
Source = #table(1,{
{"The red barn"},
{"A red car"},
{"Blue jeans"},
{"Green beans"},
{"Atlanta"},
{"Chicago"}
}),
LookUp = #table(1, {{"red"}, {"blue jean"}}),
#"Filtered Rows" =
Table.SelectRows(
Source,
(r)=> List.AnyTrue(
List.Transform(
LookUp[Column1],
each Text.Contains(r[Column1], _, Comparer.OrdinalIgnoreCase)
)
)
)
in
#"Filtered Rows"
在大查找的情况下 table 您可以在过滤步骤
之前添加一个带有 List.Buffer(LookUp[Column1])
的步骤
我想搜索文本字符串列表,查找其中哪些字符串包含多个单词或短语,并获取相应行的值。例如,如果我有以下列,我如何搜索它以找到其中包含 "red" 或 "blue jean" 的行,并获取它们的值,而不考虑大小写 (upper/lower)?
我知道我可以使用 List.FindText({[Column1]},"red")
来查找和 return 使用 "red" 的所有行的值,但我不知道如何查找和 [=24] =] 一次包含 "red" 或 "blue jean" 的所有行的值。
您可以使用 List.Transform 和 Text.Contains 的组合:
let
Source = #table(1,{
{"The red barn"},
{"A red car"},
{"Blue jeans"},
{"Green beans"},
{"Atlanta"},
{"Chicago"}
}),
LookUp = #table(1, {{"red"}, {"blue jean"}}),
#"Filtered Rows" =
Table.SelectRows(
Source,
(r)=> List.AnyTrue(
List.Transform(
LookUp[Column1],
each Text.Contains(r[Column1], _, Comparer.OrdinalIgnoreCase)
)
)
)
in
#"Filtered Rows"
在大查找的情况下 table 您可以在过滤步骤
之前添加一个带有List.Buffer(LookUp[Column1])
的步骤