【发布时间】:2015-01-08 04:33:05
【问题描述】:
我希望能够使用正则表达式来匹配给定的字符串,而不是包含它的特定更长的单词。这是一个更好地解释的例子:
给定文字:
String bellsringing = "The bells are ringing is a String";
我希望能够找到“ring”的所有出现,它们不属于单词 String 的一部分,不限于单词(可以出现在一个里面)。 所以答案只会是“铃声(铃声)”和“(铃声)铃声”。
我知道一个程序可以用于这样的任务,但是我遇到了在大型库中查找特定字符串的需要,如果寻找的字符串是一个公共关键字/文字的子字符串,我有很多使用正则表达式函数进行挖掘并将受益于 IDE 的搜索:)
感谢您对此的任何意见。
【问题讨论】:
-
谢谢,但这并不能解决我的问题。
-
“字符串”是您要排除的唯一文本吗?还是像“带来”之类的东西?您可以使用word boundaries 来匹配单词的开头或结尾,但是区分在某些单词中间而不是其他单词 可能真的很麻烦。
-
看看this answer 了解除了上下文A、B或C之外如何捕获字符串。正则表达式无法理解单词中的一组字母是否保留了它的含义,因此您必须以某种方式列出使用此上下文 A、B 或 C 技术可以接受和不接受的内容。这是 Fede 答案的长版本。
-
哇...感谢您的链接。这让我很开心。现在我也理解了@Fede 的回答 :)
标签: regex