我试图理解为什么以下内容没有给我我认为(或想要:))应该返回的内容:
sed -r 's/^(.*?)(Some text)?(.*)$/\2/' list_of_values
Run Code Online (Sandbox Code Playgroud)
或 Perl:
perl -lpe 's/^(.*?)(Some text)?(.*)$/$2/' list_of_values
Run Code Online (Sandbox Code Playgroud)
所以我希望我的结果只是,Some text否则(意味着如果 中没有捕获任何内容$2)那么它应该是 EMPTY 。
我确实注意到,对于perl,如果位于行/字符串的开头,它确实可以工作(这让我感到困惑......)。Some text(还注意到删除^并$没有效果)
基本上,我试图获取此处讨论的选项grep会返回什么。只有我想要/需要在正则表达式中使用 sub/replace 。--only-matching
编辑(添加示例数据)
输入示例:
$ cat -n list_of_values
1 Black
2 Blue
3 Brown
4 Dial Color
5 Fabric
6 Leather and Some text after that ....
7 Pearl Color
8 Stainless Steel
9 White
10 …Run Code Online (Sandbox Code Playgroud) 如何解析以下正则表达式:
char = r" -~"
min_length = 5
'[%s]{%d,}' % (chars, min_length)
Run Code Online (Sandbox Code Playgroud) 我想从基于模式的长字符串中提取子字符串。想知道获得它的最佳方法是什么?
http://abcdef?menu=xyz&source=push&push_id=1212239617294503480&message_id=7658a0a6-9d31-4c3c-9aa0-9169f24e2fdc
Run Code Online (Sandbox Code Playgroud)
图案: 'menu'
子串寻找: 'xyz'
我想知道,只有在测试字符串仅属于其中一个测试组的情况下,才有正则表达式可以帮助匹配文本吗?
假设我有这两类:
第一组: [a-zA-Z]
第2组: [0-9]
因此,是否存在适用的正则表达式,以仅匹配以下字符串:abc或仅匹配此字符串:123。
但是,当有一个字符串表示两个组的组合时,这将不匹配任何内容123abc2b。
PS:我正在使用Java。
如何从网址中删除除基本网址和第一部分以外的所有部分。零件数量不确定。基本网址是可变的。我尝试了一些正则表达式,但没有成功。
$url = http://www.example.com/part1/part2/part3/part4;
base_url = parse_url($url, PHP_URL_HOST); // Outputs www.example.com
$desired_output = http://www.example.com/part1;
Run Code Online (Sandbox Code Playgroud) 在这里提出了这个问题,但是我不想要python特定的解决方案。它应该可以在JavaScript和任何其他主流语言中工作。它必须是一个正则表达式。
假设分隔符为“ !”
下表显示了一些示例输入的期望行为
+------------------------+--------+
| INPUT | OUTPUT |
+------------------------+--------+
| "aaaa!bbbb" | "aaaa" |
| "aaaa" | "aaaa" |
| "aaaa!bbbb!ccccc!dddd" | "aaaa" |
| "aaaa!" | "aaaa" |
| "!aaaaa" | "" |
+------------------------+--------+
Run Code Online (Sandbox Code Playgroud)
我尝试以下无济于事:
“ ^[^!]*$(!)”
在 Office 2019 Excel 电子表格中。我试图从任何指定的单元格中提取最多 5 个以 ] 后的点结尾的单词。
示例文本:
一些文字[asred.] ost。|周一 - 里本(终极)很多。交流,中国。其他可能是长文本;科兰。
我预计:
OST。终极。很多。华。科兰。
我在网上找到了这个功能:
Public Function RegExtract(Txt As String, Pattern As String) As String
With CreateObject("vbscript.regexp")
'.Global = True
.Pattern = Pattern
If .test(Txt) Then
RegExtract = .Execute(Txt)(0)
Else
RegExtract = "No match found"
End If
End With
End Function
Run Code Online (Sandbox Code Playgroud)
我从一个空单元格中调用它:
=RegExtract(D2; "([\]])(\s\w+[.]){0,5}")
Run Code Online (Sandbox Code Playgroud)
我的表情:
([\]])(\s\w+[.]){0,5}
Run Code Online (Sandbox Code Playgroud)
它返回:
] OST。
我无法去掉 ] ,因为 \K 在 Excel 中不起作用,因此需要找到有用位在文本块内开始的位置。
我不明白迭代器如何工作以获取“最多 5 次出现”。
我预计第二组之后的 {0,5} 表示:重复前一组直到文本块末尾(或者直到您成功执行 5 次)。
--在 JdvD 接受记录答案后添加--
我使用这种模式来获取在第一次 …
我希望仅提取此“ =»”之后的数字,但我仍然保留其他一些文字:
[^»]*[\d{1,}]$
Run Code Online (Sandbox Code Playgroud)
> login as: LOGIN SERVER@00.00.00.000's password: Last login: Thu May 23
> 15:51:49 2019 from 00.00.00.000 CREER AUTANT DE REPERTOIRES SOUS
> /NAME/NAME/NAME QU'IL Y A DE COMMERCANTS GERES. LE NOM DOIT ETRE LE NO
> DE COMMERCANT. CREER ENSUITE SOUS CHACUN D'EUX UN REPERTOIRE NAME/
> <SERVER>ps -fu NAME | grep exe | echo «resultat=»`wc -l` «resultat=»14
> <SERVER>
Run Code Online (Sandbox Code Playgroud)
我该如何解决这个问题?
澄清:我不是要求一种模式.我问为什么一个模式在PHP和JavaScript中工作但在.Net中不起作用.
我试图从路径获取底层文件夹.该模式适用于PHP和JavaScript,但在.Net中返回意外结果.我想了解为什么.Net会返回它返回的模式.
鉴于这条道路:
"C:\ 0级\ 1级\ level2的\ FILENAME.EXT"
我想要匹配
"级别2"
这是我正在使用的模式:(编辑器不断取出斜杠,所以这是一张图片:
我希望匹配的内容:
(第二级)
C#匹配的内容:
C:\ 0级\ 1级
如何为.Net指定此模式以匹配底层文件夹?