【问题标题】:Regular expression help: search character正则表达式帮助:搜索字符
【发布时间】:2013-09-23 12:30:44
【问题描述】:

例如,我有以下代码:

SELECT Something, ?, Count('Something2') AS Total FROM table WHERE Id=? AND Time>NOW() FOR UPDATE

现在我需要在SELECTFROM 之间搜索?。我怎样才能做到这一点?类似SELECT \? FROM

【问题讨论】:

  • “需要搜索”是什么意思?你想做什么?
  • 我需要搜索“?” Notepad++中的字符
  • 嗯?你想做什么?你想要一个正则表达式吗?判断select和from之间是否有问号?还是什么?
  • 如果你只需要搜索一个文字?,然后按ctrl-f,将“搜索模式”设置为“正常”,然后输入一个?进盒子里。如果您希望搜索模式仍为“正则表达式”,请在搜索框中输入\?。如果要搜索从 Select 到 From 的整个字符串,请使用 SELECT.*?\?.*?FROM
  • 是的,你是对的,但我只想搜索 ? SELECT 和 FROM 之间的字符,所以 'Id' 后面的字符不应该出现。

标签: regex notepad++


【解决方案1】:

使用前瞻仅匹配“?”

(\?)(?=.*FROM.*)

确保使用不区分大小写,这样您就不会错过from 以小写形式编写的查询。

大多数正则表达式风格不支持大小不固定的lookbehind - 这就是您不能在正则表达式中使用 SELECT 的原因。

【讨论】:

  • 谢谢,这个正则表达式适用于 PHP,但不适用于 Notepad++ 搜索功能。如何解决?
  • @Jordy 很奇怪,但我昨天遇到了同样的问题(使用 Notepad++):stackoverflow.com/a/18861906/1057429 没有机会在另一台计算机上检查它...
  • 奇怪,我将 Notepad++ 更新到了最新版本,现在可以使用了……谢谢!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2013-06-01
  • 1970-01-01
  • 1970-01-01
  • 2011-06-10
相关资源
最近更新 更多