我知道可以匹配一个单词,然后使用其他工具(例如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) 当我做一个git diff时,它会显示已添加的行:
+ this line is added
Run Code Online (Sandbox Code Playgroud)
已删除的行:
- this line is removed
Run Code Online (Sandbox Code Playgroud)
但它也显示了许多未修改的行:
this line is not modified
this line is also not modified
Run Code Online (Sandbox Code Playgroud)
这导致实际的git diff看起来像这样:
+ this line is added
this line is not modified
- this line is removed
this line is not modified
Run Code Online (Sandbox Code Playgroud)
我可以要求git只显示已修改的行并忽略所有其他未修改的代码吗?我写了一个方法,它将删除所有在它们前面没有"+"或" - "符号的行,但我相信必须有一个更简单的方法来执行此操作.
在我的git diff中,我只对看到已修改的行感兴趣.
提前致谢.
是否可以在正则表达式中进行字符串否定?我需要匹配所有不包含字符串的字符串"..".我知道你可以使用^[^\.]*$匹配所有不包含的字符串,"."但我需要匹配多个字符.我知道我可以简单地匹配一个包含的字符串"..",然后否定匹配的返回值以获得相同的结果,但我只是想知道它是否可能.
使用正则表达式如何匹配字符串中的所有东西?这可能没有意义,但请继续阅读.
所以取词baby,例如匹配的一切,是不是一个b你会做这样的事情[^b],这将匹配a和y.很简单!但是,如果在这个字符串Ben sits on a bench中我能如何匹配那些不是ben我试图匹配的东西sits on a ch呢?
更好地匹配所有不是模式的东西?例如,1a2be3 匹配所有不是的东西number,letter,number,所以它会匹配字符串中的每个组合除外1a2?
String test1 = "This is my test string";
Run Code Online (Sandbox Code Playgroud)
我想匹配一个不包含"test"的字符串
我可以做到
Pattern p = Pattern.compile(".*?^(test).*?")
Run Code Online (Sandbox Code Playgroud)
它的工作原理,但在大多数像正则表达式
这样的网站上,否定了整个字符组^(?!.*test).*$ ,这对我来说不起作用.
根据我的理解^(test)是足够的,为什么 ^(?!.*test).*$需要?
我想对一个范围求和,其中相应范围不包含“2nd”。
这与我想要的相反:
=sum(filter(fUsers,regexmatch(fLabel,"2nd")))
Run Code Online (Sandbox Code Playgroud)
运行并返回 1,150。
我查看并尝试复制这些帖子:
我知道如果我转到相关数据集并使用过滤,我应该返回 15,017。
根据这些帖子,我尝试过:
=sum(filter(fUsers,regexmatch(fLabel,"^(?!2nd$).*"))) // returns #N/A no matches found in filter evaluation.
=sum(filter(fUsers,regexmatch(fLabel,"^(?!.*2nd).*$"))) // returns #N/A no matches found in filter evaluation.
Run Code Online (Sandbox Code Playgroud)
如何让 Gsheets 对 fUsers 范围内的值求和,其中 fLabel 不包含“2nd”?
所以我知道这[^A-Za-z]会匹配任何非字母的字符。
有什么办法可以在团体中做到这一点吗?例如:(?^:&)- 将匹配任何不是该序列的字符序列&
注意:正如Mark Reed指出的那样,匹配空字符串是没有意义的,因为空字符串是不是序列的字符序列,所以我希望正则表达式匹配尽可能多的字符
例如:
匹配中将Ben & Jerry's是Ben and (请注意,前后的 Jerry's空格也会被捕获。BenJerry's
注意:如果可能,请不要使用后视,因为我将在 JS 脚本中使用正则表达式,而 Javascript 不支持后视。
我试图使用JavaScript 替换与正则表达式模式不匹配的字符串部分.这在功能上等同于使用-vGNU grep中的标志来反转结果.这是一个例子:
// I want to replace all characters that don't match "fore"
// in "aforementioned" with "*"
'aforementioned'.replace(new RegExp(pattern, 'i'), function(match){
//generates a string of '*' that is the length of match
return new Array(match.length).join('*');
});
Run Code Online (Sandbox Code Playgroud)
我正在寻找一个正则表达式pattern.这将是相反的(fore).我已经四处搜索但未能实现任何相关问题的答案以满足我的需求.无论如何,这是一个列表,也许它会指出我们正确的方向:
我有一个非常简单的正则表达式与此类似:
HOHO.*?_HO_
有了这个测试字符串...
fiwgu_HOHO_HOHO_HOHOrgh_HOHO_feh_HOHO___HO_fbguyev
_HOHO___HO_(最短匹配,非贪婪)_HOHO_HOHO_HOHOrgh_HOHO_feh_HOHO___HO_(最长的匹配,看起来很贪婪)。为什么?如何使它匹配最短的匹配项?
添加和删除的?结果相同。
编辑 -更好的测试字符串,显示为什么[^HOHO]不起作用:fiwgu_HOHO_HOHO_HOHOrgh_HOHO_feh_HOHO_H_O_H_O_HO_fbguye
我能想到的是,它可能多次匹配-但只有一个匹配_HO_,所以我不明白为什么它没有采用以结尾的最短匹配_HO_,而丢弃了其余匹配。
我已经浏览了所有标题为“非贪婪正则表达式贪婪”之类的问题,但它们似乎都存在其他问题。
我正在尝试进行正则表达式选择,从BYPASS 0 0 0上面开始并包括它所说的部分,WAK 0 0 这是我所拥有的(?s)(?=BYPASS).*?(WAK....),我认为我的 python 使用语法不正确,这也是我在 python 脚本中使用它的方式,re.split(r'(?s)(?=BYPASS).*?(WAK....)', r) 我相信这导致了问题我的(?s)正则表达式选择不正确。
<REAPER_PROJECT 0.1 "6.66/win64" 1661879469
<NOTES 0 2
>
RIPPLE 0
GROUPOVERRIDE 0 0 0
AUTOXFADE 129
ENVATTACH 3
POOLEDENVATTACH 0
MIXERUIFLAGS 11 48
PEAKGAIN 1
FEEDBACK 0
PANLAW 1
PROJOFFS 0 0 0
MAXPROJLEN 0 600
GRID 3199 8 1 8 1 0 0 0
TIMEMODE 1 5 -1 30 0 0 -1
VIDEO_CONFIG 0 0 256
PANMODE 3 …Run Code Online (Sandbox Code Playgroud) regex ×9
javascript ×3
git ×1
java ×1
lookahead ×1
negation ×1
non-greedy ×1
python ×1
replace ×1