【发布时间】:2015-06-19 00:22:43
【问题描述】:
我需要正则表达式,它可以在所有这些句子和任何类似的迭代中找到单词 when。
- “就是这个。”什么时候发生的? (以引号结尾/或 FN 调用)
- 就是这样。什么时候发生的? (注意引号不见了)
- 就是这样。什么时候发生的? (注意双空格)
- 就是这样。什么时候发生的? (注意小写的 w)
- 这是那个?什么时候发生的? (注意问号)
此代码将在第一次迭代时匹配:(?<=\.\".)[a-zA-Z]*?(?=\s)
我最困惑的是,我的测试程序似乎不允许我在回溯文本中使用量词或其他修饰符。例如,我可以这样做:
(?<=((\.)|(\!)|(\?))\"{0,1}\s{1,2})[a-zA-Z]*?(?=\s)
我对该文本的问题是:
1) 它似乎根本没有处理。
2) 似乎没有任何简单的方法可以使回溯中的量词变得懒惰。换句话说,即使它正在处理,我也不确定它对(?<=((\.)|(\!)|(\?))\"{0,1}\s{1,2}?)[a-zA-Z]*?(?=\s) 的意义如何
3) 我添加了过多的括号,因为我发现它更易于阅读,但我没有得到结果 w/ 或 w/o 他们。所以他们不是问题。顺便说一句,它们会成为问题吗?
【问题讨论】:
-
@CasimiretHippolyte 不允许这样做!
-
可选报价怎么样?
-
确实,我还没有看到它被包含在lookbehind中!
标签: python regex testing match quantifiers