如何通过分隔符拆分字符串,但如果它被转义则不能?例如,我有一个字符串:
1|2\|2|3\\|4\\\|4
Run Code Online (Sandbox Code Playgroud)
分隔符是|和转义分隔符\|.此外,我想忽略逃脱反斜杠,因此\\|在|仍然是一个分隔符.
所以使用上面的字符串,结果应该是:
[0] => 1
[1] => 2\|2
[2] => 3\\
[3] => 4\\\|4
Run Code Online (Sandbox Code Playgroud) 我在Perl中有一些有用的正则表达式.有没有一种简单的方法将它们转换为.NET的正则表达式方言?
如果没有,是否有一个简明的差异参考?
在我使用它时,试图在双引号内grep一个字符串
grep user file | grep -e "[\'\"]"
Run Code Online (Sandbox Code Playgroud)
这将到达我需要的文件部分,并突出显示双引号,但它不会给双引号中的刺痛
我知道java正则表达式不支持不同长度的后视,并且以下应该会导致错误
(?<=(not exceeding|no((\\w|\\s)*)more than))xxxx
Run Code Online (Sandbox Code Playgroud)
但是当*被固定长度说明符替换时
(?<=(not exceeding|no((\\w|\\s){0,30})more than))xxxx
Run Code Online (Sandbox Code Playgroud)
它仍然失败.为什么是这样?
我有一个 M3U 播放列表,如下所示:
#EXTM3U
#EXTINF:-1 tvg-id="wsoc.us" tvg-name="ABC 9 (Something) (WSOC)" tvg-logo="" group-title="US Locals",ABC 9 (Something) WSOC (WSOC)
http://some.url/1
#EXTINF:-1 tvg-id="wbtv.us" tvg-name="CBS 3 WBTV (WBTV)" tvg-logo="" group-title="US Locals",CBS 3 WBTV (WBTV)
http://some.url/2
#EXTINF:-1 tvg-id="wcnc.us" tvg-name="NBC (Hey) 36 WCNC (WCNC)" tvg-logo="" group-title="US Locals (Something here)",NBC 36 (Hey) WCNC (WCNC)
http://some.url/3
#EXTINF:-1 tvg-id="wjzy.us" tvg-name="FOX 46 WJZY (Shout Out) (WJZY)" tvg-logo="" group-title="US Locals",FOX 46 WJZY (Shout Out) (WJZY)
http://some.url/4
Run Code Online (Sandbox Code Playgroud)
我希望获取 tvg-name 字段中不带括号的最后一个条目 - 例如,WSOC 和 WBTV 和 WCNC 等。
这有效:
grep -Po 'tvg-name=\".*?\"' Playlist.m3u …Run Code Online (Sandbox Code Playgroud) 我有一个文本正在寻找从中提取重复的4位数字.
例如:
第一个是1234 2)第二个是2098 3)第三个是3213
现在我知道我只需使用以下内容即可获得第一组数字:
/\d{4}/
Run Code Online (Sandbox Code Playgroud)
...返回1234
但是我如何匹配第二组数字,或第三组数字,依此类推......?
编辑:我如何返回2098或3213
我有一个包含以下行的文件(精简示例,真实文件是1.000+行):
...
type1.value1=60 <-- replace 60 with 72 from line 5
type1.value2=15 <-- replace 15 with 14 from line 6
type2.value1=50 <-- replace 50 with 72 from line 5
type2.value2=18 <-- replace 18 with 14 from line 6
type3.value1=72
type3.value2=14
...
Run Code Online (Sandbox Code Playgroud)
我想用type3中的值替换type(x)中的所有值.有很多类型/价值组合,所以我想避免手工.此外,我必须经常这样做.
这可能与Notepad ++ Regex查找/替换?
匹配表达式如下,其中第一个组应该保持不变,第二个组应该替换为anoter regex的结果.
^type1.([\w]+)=([\S]+)
Run Code Online (Sandbox Code Playgroud) 我有一个在http://gskinner.com/RegExr/上测试过的正则表达式,它可以工作,但是当我在C#应用程序中使用它时,它失败了。
我的正则表达式:(?<!\d)\d{6}\K\d+(?=\d{4}(?!\d))
文本:4000751111115425结果:111111
我的正则表达式有什么问题?
我有一个包含文本和数字的文本文件,我想使用grep只提取我需要的数字,例如,给定一个文件如下:
miss rate 0.21
ipc 222
stalls n shdmem 112
Run Code Online (Sandbox Code Playgroud)
所以说,我只是想提取的数据miss rate是0.21.我如何用grep或sed做到这一点?另外,我需要不止一个号码,而不仅仅是后一个号码miss rate.也就是说,我可能要同时获得0.21和112.示例输出可能如下所示:
0.21 222 112
Run Code Online (Sandbox Code Playgroud)
因为我需要以后绘图的数据.