正则表达式
Pydoc |
根据正则表达式过滤输入字符串元素。也可以根据匹配的组对其进行转换。
示例
在以下示例中,我们使用包含文本字符串的 PCollection
创建一个管道。然后,我们使用 Regex
转换来使用 正则表达式 搜索、替换和拆分文本元素。
您可以使用工具来帮助您创建和测试正则表达式,例如 regex101。请确保在左侧边栏中指定 Python 风格。
例如,我们来看看 正则表达式 (?P<icon>[^\s,]+), *(\w+), *(\w+)
。它匹配任何不是空格 \s
([ \t\n\r\f\v]
) 或逗号 ,
的内容,直到找到逗号,并将该内容存储在名为 icon
的命名组中,这甚至可以匹配 utf-8
字符串。然后它匹配任意数量的空格,后面跟着至少一个单词字符 \w
([a-zA-Z0-9_]
),该字符存储在第二个组中以表示名称。它对第三组中的持续时间也执行相同的操作。
注意:为了避免在正则表达式中出现意外的字符串转义,建议使用 原始字符串,例如
r'raw-string'
而不是'escaped-string'
。
示例 1:正则表达式匹配
Regex.matches
只保留与正则表达式匹配的元素,并返回匹配的组。参数 group
默认设置为 0
(整个匹配),但可以设置为组编号,例如 3
,或设置为命名组,例如 'icon'
。
Regex.matches
从字符串开头开始匹配正则表达式。要匹配到字符串的结尾,请在正则表达式的末尾添加 '$'
。
要从字符串的任意位置而不是开头开始匹配,请使用 Regex.find(regex)
。
示例 2:使用所有组进行正则表达式匹配
Regex.all_matches
只保留与正则表达式匹配的元素,并返回所有组作为一个列表。组按在正则表达式中遇到的顺序返回,包括 group 0
(整个匹配)作为第一个组。
Regex.all_matches
从字符串开头开始匹配正则表达式。要匹配到字符串的结尾,请在正则表达式的末尾添加 '$'
。
要从字符串的任意位置而不是开头开始匹配,请使用 Regex.find_all(regex, group=Regex.ALL, outputEmpty=False)
。
示例 3:将正则表达式匹配转换为键值对
Regex.matches_kv
只保留与正则表达式匹配的元素,并使用指定的组返回键值对。参数 keyGroup
设置为组编号,例如 3
,或设置为命名组,例如 'icon'
。参数 valueGroup
默认设置为 0
(整个匹配),但可以设置为组编号,例如 3
,或设置为命名组,例如 'icon'
。
Regex.matches_kv
从字符串开头开始匹配正则表达式。要匹配到字符串的结尾,请在正则表达式的末尾添加 '$'
。
要从字符串的任意位置而不是开头开始匹配,请使用 Regex.find_kv(regex, keyGroup)
。
示例 4:正则表达式查找
Regex.find
只保留与正则表达式匹配的元素,并返回匹配的组。参数 group
默认设置为 0
(整个匹配),但可以设置为组编号,例如 3
,或设置为命名组,例如 'icon'
。
Regex.find
匹配字符串中正则表达式的第一个出现位置。要从开头开始匹配,请在正则表达式的开头添加 '^'
。要匹配到字符串的结尾,请在正则表达式的末尾添加 '$'
。
如果您需要仅从开头开始匹配,请考虑使用 Regex.matches(regex)
。
示例 5:正则表达式查找所有
Regex.find_all
返回正则表达式所有匹配项的列表,并返回匹配的组。参数 group
默认设置为 0
,但可以设置为组编号,例如 3
,设置为命名组,例如 'icon'
,或设置为 Regex.ALL
以返回所有组。参数 outputEmpty
默认设置为 True
,但可以设置为 False
以跳过未找到匹配项的元素。
Regex.find_all
匹配字符串中找到的正则表达式的所有出现位置。要从开头开始匹配,请在正则表达式的开头添加 '^'
。要匹配到字符串的结尾,请在正则表达式的末尾添加 '$'
。
如果您需要仅从开头开始匹配所有组,请考虑使用 Regex.all_matches(regex)
。
示例 6:正则表达式查找作为键值对
Regex.find_kv
返回正则表达式所有匹配项的列表,并使用指定的组返回键值对。参数 keyGroup
设置为组编号,例如 3
,或设置为命名组,例如 'icon'
。参数 valueGroup
默认设置为 0
(整个匹配),但可以设置为组编号,例如 3
,或设置为命名组,例如 'icon'
。
Regex.find_kv
匹配字符串中正则表达式的第一个出现位置。要从开头开始匹配,请在正则表达式的开头添加 '^'
。要匹配到字符串的结尾,请在正则表达式的末尾添加 '$'
。
如果您需要仅从开头开始作为键值对匹配,请考虑使用 Regex.matches_kv(regex)
。
示例 7:正则表达式替换所有
Regex.replace_all
返回字符串,其中所有正则表达式匹配的项都被替换为另一个字符串。您也可以在 replacement
中使用 反向引用。
示例 8:正则表达式替换第一个
Regex.replace_first
返回字符串,其中第一个正则表达式匹配的项被替换为另一个字符串。您也可以在 replacement
中使用 反向引用。
示例 9:正则表达式拆分
Regex.split
返回由指定正则表达式分隔的字符串列表。参数 outputEmpty
默认设置为 False
,但可以设置为 True
以在输出列表中保留空项目。
相关转换
Pydoc |
最后更新于 2024/10/31
您找到您要找的所有内容了吗?
它们都有用且清晰吗?您想更改任何内容吗?请告诉我们!