【问题标题】:Getting a Regex for an "A.B"获取“A.B”的正则表达式
【发布时间】:2015-04-13 03:32:44
【问题描述】:

我正在使用(非常棒的)"Autocomplete Menu" 为我验证一些 SQL 代码。自动完成菜单使用正则表达式来建议自动完成项目。

默认的正则表达式是

[\w\.]

对于带有空格边界的单词效果很好。本质上,我有一组 SQL 关键字,以及一组常用的表和字段。使用我们的数据库,我的查询需要为表名添加前缀。为了让它正常工作,我想要的是让自动完成菜单处理一个“。”作为空格。 IE。目前,如果我有一个名为“PEOPLE”的表,其中有一个名为“FIRST_NAME”的字段,我希望自动完成在以下位置触发: 人冷杉 给我“FIRST_NAME”选项。

即目前,如果我输入 FIR,它可以工作,但如果我输入 PEOPLE.FIR

则不能

是否有任何人都可以建议的正则表达式来处理“。”作为单词边界?我尝试搜索一些正则表达式网站,但没有找到任何有用的东西。

【问题讨论】:

  • 请解释一下您认为正则表达式[\w.] 是如何工作的。如果你理解它,解决方案是微不足道的。
  • 你的意思是[\w.]+?
  • 对不起 - 我错了。默认正则表达式是 [\w\.]。我是 Regex 的新手,但我知道方括号意味着它会查找括号内任何字符的匹配项。 \w 查找任何字母数字。这 \。匹配一个“.”也是。问题是我实际上并不想匹配一个“。”,我希望它被解释为空格(我想我可以在每个字段名前面加上一个“。”)。
  • @ainwood:是的,所以从字符类中删除点,这样它就不会匹配!

标签: regex


【解决方案1】:

如果您不希望它与文字点匹配,请从正则表达式中删除文字点。

【讨论】:

  • 哇——真的就是这么简单!谢谢!
【解决方案2】:

试试PEOPLE\.FIR

\ 字符转义了.,并告诉它将. 解释为. 本身。

【讨论】:

  • 谢谢。当我发布问题时,转义字符被格式化。实际的正则表达式是 [ \ w \ 。 ]。我不想匹配这个,我实际上想要'。被视为空白。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-05-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多