2024-09-26 18:20:02 发布
网友
根据http://www.php2python.com/wiki/function.preg-replace-callback/re.sub是PHP的preg_replace_回调的python等价物,但是PHP版本为要匹配的字符串使用一个数组,因此可以传递多个字符串,但是re.sub似乎只使用一个字符串。
是对的,还是我对python的了解不够?
晚到派对我知道,但如果这是您希望封装到函数中的多步骤过程的要求,那么您可以通过numpy矢量化处理:
def EliminateAlpha(elem): return re.sub("[a-zA-Z]", "", elem) ElimAlphaArray = np.vectorize(ElimateAlpha) array_of_strings = ["3a1", "1b2", "1c", "d"] print(ElimAlphaArray(array_of_strings)) ['31' '12' '1' '']
当然,可以直接使用re.sub函数进行矢量化:
ElimAlphaArr = np.vectorize(re.sub) print(ElimAlphaArr("[a-zA-Z]", "", array_of_strings)) ['31' '12' '1' '']
如果你想在一个数组中进行,你可以使用列表理解,例如
>>> array_of_strings = ["3a1", "1b2", "1c", "d"] >>> [re.sub("[a-zA-Z]", "", elem) for elem in array_of_strings] ["31", "12", "1", ""]
不过,如果您使用的是复杂的表达式,则可能应该首先在模式上使用^{}
它只需要一个字符串http://docs.python.org/library/re.html#re.sub
晚到派对我知道,但如果这是您希望封装到函数中的多步骤过程的要求,那么您可以通过numpy矢量化处理:
当然,可以直接使用re.sub函数进行矢量化:
如果你想在一个数组中进行,你可以使用列表理解,例如
不过,如果您使用的是复杂的表达式,则可能应该首先在模式上使用^{}
它只需要一个字符串http://docs.python.org/library/re.html#re.sub
相关问题 更多 >
编程相关推荐