我有一个简单的问题,我只是想知道如何在 unix 终端的 grep 中使用lookahead和lookafter?我想知道如何打开 ?= 和 ?<= 等的特殊含义。
希望大家能给我一些建议。
提前谢谢了。:p
我正在使用notepad++并希望找到特定字符串出现的上下文.
所以搜索字符串是0wh.*0subj,我想在它之前和之后找到这个搜索项加上4行.
eg: xxx means whatever is on a new line. the search result should be:
xxx
xxx
xxx
xxx
0wh.*0subj
xxx
xxx
xxx
xxx
Run Code Online (Sandbox Code Playgroud)
我试过using \n\r但它不起作用.我们将非常感谢所提供的任何帮助.
问候
我目前正在研究 WSUS-Update 自动化,我想获取所有不以“(德语|英语)语言包”开头的更新。
这是我到目前为止得到的:
[regex]$reg = "(?<!German|English|English \(United States\)) Language Pack"
$LanguagePacks = $updates.Where({ $_.Title -match $reg })
Run Code Online (Sandbox Code Playgroud)
这有效,但我也得到了更新,例如:Windows Internet Explorer 9 Language Pack for Windows 7 for x64-based Systems
但我也想获得以下语法的更新:[Language] Language Pack eg Finnish Language Pack
所以我尝试使用 '^' 锚来确定字符串的开始
[regex]$reg = "^(?<!German|English|English \(United States\)) Language Pack"
$LanguagePacks = $updates.Where({ $_.Title -match $reg })
Run Code Online (Sandbox Code Playgroud)
但在这种情况下,结果是空的:(
你有什么想法吗?
格雷茨·埃尔多
我正在尝试识别 R 中某个子字符串之后出现的数字。
例如:
sa <- "100 dollars 200"
Run Code Online (Sandbox Code Playgroud)
在上面的字符串中,为了查找单词 后面出现的数字dollar,我执行以下代码:
str_match_all(sa,"(?<=dollars )\\d+")
Run Code Online (Sandbox Code Playgroud)
我得到以下结果:
[[1]]
[,1]
[1,] "200"
Run Code Online (Sandbox Code Playgroud)
但是,当我使用以下输入时:
sa <- "100 dollars for 200 pesos"
Run Code Online (Sandbox Code Playgroud)
我非常无法获得输出200。
我收到一个像这样的私钥:-
-----BEGIN RSA PRIVATE KEY-----
MIIEpQIBAAKCAQEA3Tz2mr7SZiAMfQyuvBjM9Oi..Z1BjP5CE/Wm/Rr500P
DtkpjGHQzPF6vOe907y5NQLvVFGXUq/FIJZxB8k..fJdHEm2M4=
-----END RSA PRIVATE KEY-----
Run Code Online (Sandbox Code Playgroud)
我想要第一行的最后一个 ----- 和最后一行的第一个 ----- 之后的数据,以便匹配组的数据如下所示:-
MIIEpQIBAAKCAQEA3Tz2mr7SZiAMfQyuvBjM9Oi..Z1BjP5CE/Wm/Rr500P
DtkpjGHQzPF6vOe907y5NQLvVFGXUq/FIJZxB8k..fJdHEm2M4=
Run Code Online (Sandbox Code Playgroud)
这就是我尝试过的,但绝对没有得到我想要的
(?=[-]*(?=[A-Z]*(?=[-])))(.*)(?=[-]*(?=[A-Z]*(?=[-])))
Run Code Online (Sandbox Code Playgroud)
你能帮我纠正一下这个问题吗?
假设我有一个这样的数据框
df <- data.frame(x=c("This script outputs 10 visualizations.",
"This script outputs 1 visualization.",
"This script outputs 5 data files.",
"This script outputs 1 data file.",
"This script doesn't output any visualizations or data files",
"This script outputs 9 visualizations and 28 data files.",
"This script outputs 1 visualization and 1 data file."))
Run Code Online (Sandbox Code Playgroud)
看起来像这样
x
1 This script outputs 10 visualizations.
2 This script outputs 1 visualization.
3 This script outputs 5 data files.
4 This script outputs 1 data file. …Run Code Online (Sandbox Code Playgroud) 我有以下RegExp:(?<= )L.*(?!MH$)。
这个想法是:
(?<= ) 匹配前必须有 4 个空格,但不能包含在匹配中。L.*匹配必须以L字符串的其余部分开始并包括...(?!MH$) 除非 MH在字符串的末尾。最后一个条件被忽略了。以MH仍然匹配的字符串结尾。为什么?
const regExpStr = String.raw`(?<= )L.*(?!MH$)`;
const regExp = new RegExp(regExpStr);
const str = '2. L2 B4 RHODA 1 ADDN,SOMECITY,OK,74999 - 81 HILLCREST MH';
const match = str.match(regExp)?.[0];
console.log(match);Run Code Online (Sandbox Code Playgroud)
我希望正则表达式在any ERROR(包括 ERROR 本身)之后匹配整个句子,除了 whenERROR后跟MO already exists. 因此,例如在下面我想要1,2,3,4的整行,但第 5 行没有任何内容。
ERROR
we have an ERROR here da da da
ERROR Parent MO not found
ERROR anything else is here
ERROR MO already exists
Run Code Online (Sandbox Code Playgroud)
我在正则表达式中尝试了以下前瞻以匹配所需的模式,但没有完全实现我想要的。
ERROR (?!MO already exist)
我需要什么修改?
假设我只有一串a's 和b's,如下所示:
aaabbbbababab
Run Code Online (Sandbox Code Playgroud)
如何构造一个正则表达式,仅当第二个和最后一个字符不同时才匹配给定的字符串?
这是我目前的尝试,正好相反(例如,如果第二个和最后一个字符相同,则匹配):
^[ab]([ab])[ab]*\1$
Run Code Online (Sandbox Code Playgroud)
我正在使用正则表达式的 ECMAScript 实现。
R 相对较新,需要帮助应用基于正则表达式的替换。我在其中一列中有一个数据框,其中有一个数字序列(我感兴趣的值),后跟一个由各种字符组成的字符串。例子:
4623(randomcharacters)
Run Code Online (Sandbox Code Playgroud)
我需要删除初始数字后的所有内容以继续使用这些值。我的想法是使用 gsub 通过正向后视删除非数字字符。我的代码是:
sub_function <- function() {
gsub("?<=[[:digit:]].", " ", fixed = T)
}
data_frame$`x` <- data_known$`x` %>%
sapply(sub_function)
Run Code Online (Sandbox Code Playgroud)
但我随后收到错误消息:
Error in FUN(X[[i]], ...) : unused argument (X[[i]])
Run Code Online (Sandbox Code Playgroud)
任何帮助将不胜感激!
regex ×10
r ×3
javascript ×2
grep ×1
notepad++ ×1
powershell ×1
regex-group ×1
string ×1
tidyr ×1
unix ×1