【问题标题】:How can I search a text using regex excluding a character?如何使用不包括字符的正则表达式搜索文本?
【发布时间】:2011-04-07 19:26:29
【问题描述】:

我想使用 \S 使用正则表达式搜索文本,但不包括末尾的“,”。

体育: 文本,tàtaréta

我的正则表达式必须找到文本(没有“,”)tàta réta

我试过了,但没用:

/\

\w 也不起作用,因为它找不到非 ascii 字符 èéòà 等。

【问题讨论】:

  • 请澄清一下,你想找到什么?你能添加一个你不想匹配的例子吗?
  • @Andrea,我想匹配 \S 除了 ","。

标签: regex vim


【解决方案1】:

继续阅读

:he /zero-width

我认为你的意思是默认选项(注意 \+ 而不是 +

/\<\S\+[^,]

这不起作用,因为 + 默认情况下是贪婪的,并且逗号不是空格:)

我想这会做你想要的:

/\<\S\{-}\>,\@!

使用verymagic,这可能会干净很多

/\v<\S+>,@!

【讨论】:

  • 感谢您的回答。我检查了两个。第一个没有找到“文本”,第二个(非常神奇的)找到“文本”,带有“,”
  • 抱歉,错过了一个地方,更新中
  • 在您的帮助下找到它:/\(\S\+\),\@
  • 它有效,但我仍在试图理解为什么上面的代码有效。谁能帮我解释一下它的作用?
猜你喜欢
  • 2014-01-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-03-28
  • 1970-01-01
  • 2014-06-07
  • 2019-12-26
  • 1970-01-01
相关资源
最近更新 更多