我知道可以匹配一个单词,然后使用其他工具(例如grep -v)反转匹配.但是,我想知道是否可以使用正则表达式匹配不包含特定单词的行(例如hede).
输入:
hoho
hihi
haha
hede
Run Code Online (Sandbox Code Playgroud)
码:
grep "<Regex for 'doesn't contain hede'>" input
Run Code Online (Sandbox Code Playgroud)
期望的输出:
hoho
hihi
haha
Run Code Online (Sandbox Code Playgroud) 我有类似的东西
aabbabcaabda
选择通过包裹最小组一个我有这个/a([^a]*)a/它工作得很好
但我有问题,由包组AA,在那里我需要像
/aa([^aa]*)aa/它不工作,我不能用第一个喜欢/aa([^a]*)aa/的,因为它会在中第一次出现的结束一个,我不想.
一般情况下,有没有什么办法,怎么说没有包含字符串以同样的方式,我可以说,不包含字符用[^a]?
简单地说,我需要aa后跟除序列aa之外的任何字符,然后以aa结尾
我想匹配任何不包含字符串"DontMatchThis"的字符串.
什么是正则表达式?
我正在寻找一个匹配字符串的正则表达式,该字符串以一个子字符串开头,并且不以某个子字符串结尾.
例:
// Updated to be correct, thanks @Apocalisp
^foo.*(?<!bar)$
Run Code Online (Sandbox Code Playgroud)
应匹配任何以"foo"开头并且不以"bar"结尾的内容.我知道[^ ...]语法,但我找不到任何能为字符串而不是单个字符做的事情.
我特意尝试为Java的正则表达式做这个,但我已经遇到过这个问题,所以其他正则表达式引擎的答案也会很棒.
感谢@Kibbee验证这也适用于C#.
这是我的第一篇文章。我在 Java 中使用 String 有问题。我想使用正则表达式。预先感谢您的任何帮助。
我的字符串是:
String str = "abXYxyzXYZabXasdfggXYZ".
Run Code Online (Sandbox Code Playgroud)
我想用“+”替换所有字符,但不是下面的变量:
String word = "XYZ"
Run Code Online (Sandbox Code Playgroud)
所以输出应该是这样的:
+++++++XYZ+++++++++XYZ.
Run Code Online (Sandbox Code Playgroud)
我开始于:
str.replaceAll("[^" + word + "]", "+")
Run Code Online (Sandbox Code Playgroud)
但我得到了不同的输出:
++XY+++XYZ++X++++++XYZ
Run Code Online (Sandbox Code Playgroud)