查找和替换文本¶
处理文本数据通常涉及查找和替换子串。有几个函数可以查找文本并返回不同的信息:一些函数确认文本是否存在,另一些函数则计算文本片段的重复次数、查找索引或提取子串。
文本搜索¶
要确定一段文本是否存在,可以使用函数occursin()
。逻辑值 1 代表 true,0 代表 false。
In [ ]:
txt = "she sells seashells by the seashore"
TF = occursin("sea", txt)
Out[0]:
要计算这段文字出现的次数,可以使用函数count()
。
In [ ]:
n = count("sea", txt)
Out[0]:
要确定文本的位置,可使用函数findall()
,该函数返回与文本片段 "sea " 匹配的字符索引。
In [ ]:
idx = findall("sea", txt)
Out[0]:
在字符串数组中搜索文本¶
搜索和替换功能还可以查找多元素数组中的文本。例如,查找多首歌曲标题中的颜色名称。
In [ ]:
songs = ["Penny Lane", "Yellow Submarine","Blackbird"]
colors = ["Red", "Yellow", "Black"]
TF = occursin.(colors,songs)
Out[0]:
要显示包含颜色名称的歌曲列表,可使用 TF 逻辑数组作为原始歌曲数组的索引。这种方法称为逻辑索引。
In [ ]:
songs[TF]
Out[0]:
匹配模式¶
除了搜索 "海 "或 "黄 "等字面文本外,您还可以搜索与模式匹配的文本。有许多预定义的模式,例如搜索数字序列的数字模式。
In [ ]:
address = " Sesame Street, New York, NY 10128"
nums = match(r"\d+", address)
Out[0]:
您可以组合模式,使搜索更准确。例如,搜索以字母 "S "开头的单词。使用 string 指定 "S "字符,使用 lettersPattern 查找该字符后的其他字母。
In [ ]:
lettersPattern = r"[a-zA-Z]+"
pat = "N" * lettersPattern
StartWithS = match.(pat, address).match
Out[0]:
在 Engee 中处理文本的其他功能请参阅 文本字符串。