相关疑难解决方法(0)

正则表达式实现细节

我回答的一个问题让我想知道:

如何在Python中实现正则表达式?那里有什么样的效率保证?实施是"标准",还是可以改变?

我认为正则表达式将作为DFA实现,因此非常有效(最多需要对输入字符串进行一次扫描).Laurence Gonsalves提出了一个有趣的观点,即并非所有Python正则表达式都是常规的.(他的例子是r"(a +)b\1",它匹配a的一些数量,ab,然后是与之前相同数量的a).使用DFA显然无法实现这一点.

那么,重申一下:Python正则表达式的实现细节和保证是什么?

如果有人可以给出某种解释(根据实现),为什么正则表达式"cat | catdog"和"catdog | cat"导致字符串"catdog"中的搜索结果不同,这也是很好的.在我之前提到的问题中提到过.

python regex

13
推荐指数
2
解决办法
5917
查看次数

将子字符串列表与Python中的字符串列表进行匹配

将子字符串列表与字符串列表相匹配的Pythonic方法是什么,如下所示:

if 'sub1' in str1 or 'sub2' in str1 or ... 'subN' in str1 or\
   'sub1' in str2 or 'sub2' in str2 or ... 'subN' in str2 or\
   ...
   'sub1' in strM or 'sub2' in strM or ... 'subN' in strM:
Run Code Online (Sandbox Code Playgroud)

一种方法是将它们与列表理解结合起来,如下所示:

strList = [str1, str2, ..., strM]
subList = ['sub1', ..., 'subN']
if any(sub in str for sub in subList for str in strList):
Run Code Online (Sandbox Code Playgroud)

有没有更好的东西,比如库函数,可以吸收其中一个维度?

非常感谢。

python string-matching

2
推荐指数
1
解决办法
2890
查看次数

查找第一个匹配子串的索引

我想搜索一个字符串并获取给定子字符串集中任何子字符串的第一个索引。

我尝试'word'.find('g' or 'r')并期望这会返回索引:2,但or显然不起作用。

我怎样才能简洁地实现这一目标?

python string

0
推荐指数
1
解决办法
52
查看次数

标签 统计

python ×3

regex ×1

string ×1

string-matching ×1