【问题标题】:Emacs RegExp - How to select CamelCase word?Emacs RegExp - 如何选择 CamelCase 单词?
【发布时间】:2018-04-21 11:41:41
【问题描述】:

我还在学习 Emacs 的正则表达式,并尝试选择 CamelCase 单词进行高亮显示。

这是我的正则表达式
\\([A-Z]*\\)\\.[a-zA-Z0-9_-]*[(]

我认为它应该只选择这样的词 => HelloWorld.hello(
它确实如此。它确实完全突出了这个词。
但它也选择了非驼峰词=> helloWorld.hello(

我做错了什么?

【问题讨论】:

  • 尝试指定您希望您的字符串大写字母开头:^[A-Z]
  • 样本输入匹配什么?全部还是仅从点开始?取决于安德森的想法是按照我的其他想法(已删除但我可以做出相应的答案)。
  • 如果所有示例输入都匹配,请确保您不应用不区分大小写的正则表达式。
  • @Andersson 我想我忘了提到的一件事是 [A-Z] 表达式不起作用。
  • @Jen-ChiehShen ,你的意思是你尝试了类似(^[A-Z][a-zA-Z]+).[a-zA-Z0-9_-]*[(] 的东西,但它不起作用?

标签: regex emacs


【解决方案1】:

好的,这其实很简单,只要你知道答案。
添加

(let ((case-fold-search nil))
  (do-something-with-regexp))

实际上解决了我的问题。

【讨论】:

  • 读到这里,我想应该是nil 而不是tgnu.org/software/emacs/manual/html_node/efaq/…
  • @Yunnosch 谢谢!我不知道为什么,但将其设置为 `t' 解决了我的问题,但出于任何原因,我将在这里将其设置为 nil。
  • 不!在这里描述对你有帮助的东西,而不是其他人(我)认为应该帮助的东西。运气好的话,有人可以解释为什么它确实对您有所帮助。只需确保确实是 t 提供了帮助。 IE。再试一次,也可以使用nil 并返回t
  • 您可以编辑您的问题,在最后添加类似“我发现了一些有用的东西,请参阅下面的答案。但有人可以解释为什么它确实有帮助吗?”
  • 这个答案中的变量名最初拼写错误,所以我怀疑发生了一些无效的测试,这可以解释对正确值的混淆。
猜你喜欢
  • 2019-06-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多