Python 如何将regexp转换为list
我得到了一个只有|和()的regexp字符串,比如: (你好,你好)我叫(鲍勃·罗伯特) 我想得到与regexp匹配的字符串的完整列表: 你好,我叫鲍勃 你好,我叫罗伯特 嗨,我叫鲍勃 嗨,我叫罗伯特 这是一个工具(图书馆)谁已经这样做 我的第一个问题是将regexp字符串拆分为如下数组:Python 如何将regexp转换为list,python,string,split,Python,String,Split,我得到了一个只有|和()的regexp字符串,比如: (你好,你好)我叫(鲍勃·罗伯特) 我想得到与regexp匹配的字符串的完整列表: 你好,我叫鲍勃 你好,我叫罗伯特 嗨,我叫鲍勃 嗨,我叫罗伯特 这是一个工具(图书馆)谁已经这样做 我的第一个问题是将regexp字符串拆分为如下数组: [['Hello','Hi'],'my name is' ,['Bob','Robert']] 使用正则表达式执行:-) 试试exrex,你觉得这对你有用吗 简单脚本 import exrex print(
[['Hello','Hi'],'my name is' ,['Bob','Robert']]
使用正则表达式执行:-)
试试exrex,你觉得这对你有用吗 简单脚本
import exrex
print(list(exrex.generate('(Hello|Hi) my name is (Bob|Robert)')))
输出
→ python new_test.py
['Hello my name is Bob', 'Hello my name is Robert', 'Hi my name is Bob', 'Hi my
name is Robert']
您可以尝试下面的解决方案,这里我没有导入任何模块。使用的唯一功能是剥离、拆分和替换
input_string = "(Hello|Hi) my name is (Bob|Robert)"
split_string = (input_string.replace("("," ").replace(")"," ")).split(" ")
print ([i.strip().split("|") for i in split_string])
#Output --> [['Hello', 'Hi'], ['my name is'], ['Bob', 'Robert']]
我希望这有帮助
如果您需要查询的最终解决方案,请使用以下代码:
from itertools import product
input_string = "(Hello|Hi) my name is (Bob|Robert)"
split_string = (input_string.replace("("," ").replace(")"," ")).split(" ")
jj = [i.strip().split("|") for i in split_string]
kk = list(product(*jj))
print ([" ".join(i) for i in kk])
#output --> ['Hello my name is Bob', 'Hello my name is Robert', 'Hi my name is Bob', 'Hi my name is Robert']
上述代码也适用于:input|string=“(Hello | Hi | Hey)my(name | naam)is(Bob | Robert)”
from itertools import product
input_string = "(Hello|Hi) my name is (Bob|Robert)"
split_string = (input_string.replace("("," ").replace(")"," ")).split(" ")
jj = [i.strip().split("|") for i in split_string]
kk = list(product(*jj))
print ([" ".join(i) for i in kk])
#output --> ['Hello my name is Bob', 'Hello my name is Robert', 'Hi my name is Bob', 'Hi my name is Robert']