相关疑难解决方法(0)

按分隔符拆分字符串,但如果它已转义则不会

如何通过分隔符拆分字符串,但如果它被转义则不能?例如,我有一个字符串:

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)

php regex preg-split

52
推荐指数
2
解决办法
4605
查看次数

参考 - 这个正则表达式意味着什么?

这是什么?

这是常见问答的集合.这也是社区Wiki,因此每个人都被邀请参与维护.

为什么是这样?

患的是给我泽码型的问题和答案不佳,没有解释.此参考旨在提供质量问答的链接.

范围是什么?

此引用适用于以下语言:,,,,,,.

这可能过于宽泛,但这些语言共享相同的语法.对于特定功能,它背后的语言标签,例如:

  • 什么是正则表达式平衡组?

regex

52
推荐指数
1
解决办法
11万
查看次数

将Perl正则表达式转换为.NET

我在Perl中有一些有用的正则表达式.有没有一种简单的方法将它们转换为.NET的正则表达式方言?

如果没有,是否有一个简明的差异参考?

.net c# regex perl

19
推荐指数
1
解决办法
5429
查看次数

双引号内的Grep字符串

在我使用它时,试图在双引号内grep一个字符串

grep user file | grep -e "[\'\"]"
Run Code Online (Sandbox Code Playgroud)

这将到达我需要的文件部分,并突出显示双引号,但它不会给双引号中的刺痛

linux bash grep

9
推荐指数
2
解决办法
2万
查看次数

Java正则表达式后视组没有明显的最大长度错误

我知道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)

它仍然失败.为什么是这样?

java regex

8
推荐指数
1
解决办法
3973
查看次数

更好的正则表达式来获取括号中的值

我有一个 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)

regex awk grep

8
推荐指数
1
解决办法
165
查看次数

正则表达式:在单词中匹配4位数

我有一个文本正在寻找从中提取重复的4位数字.

例如:

第一个是1234 2)第二个是2098 3)第三个是3213

现在我知道我只需使用以下内容即可获得第一组数字:

    /\d{4}/
Run Code Online (Sandbox Code Playgroud)

...返回1234

但是我如何匹配第二组数字,或第三组数字,依此类推......?

编辑:我如何返回2098或3213

regex perl

7
推荐指数
1
解决办法
3万
查看次数

Notepad ++正则表达式替换为来自同一文件的捕获

我有一个包含以下行的文件(精简示例,真实文件是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)

regex notepad++

6
推荐指数
1
解决办法
93
查看次数

C#中的正则表达式模式\ K替代

我有一个在http://gskinner.com/RegExr/上测试过的正则表达式,它可以工作,但是当我在C#应用程序中使用它时,它失败了。

我的正则表达式:(?<!\d)\d{6}\K\d+(?=\d{4}(?!\d)) 文本:4000751111115425结果:111111

我的正则表达式有什么问题?

c# regex

5
推荐指数
1
解决办法
1653
查看次数

如何使用grep/sed提取子字符串和数字

我有一个包含文本和数字的文本文件,我想使用grep只提取我需要的数字,例如,给定一个文件如下:

miss rate 0.21  
ipc 222  
stalls n shdmem 112
Run Code Online (Sandbox Code Playgroud)

所以说,我只是想提取的数据miss rate0.21.我如何用grep或sed做到这一点?另外,我需要不止一个号码,而不仅仅是后一个号码miss rate.也就是说,我可能要同时获得0.21112.示例输出可能如下所示:

0.21 222 112
Run Code Online (Sandbox Code Playgroud)

因为我需要以后绘图的数据.

regex linux bash sed

5
推荐指数
2
解决办法
2万
查看次数

标签 统计

regex ×9

bash ×2

c# ×2

grep ×2

linux ×2

perl ×2

.net ×1

awk ×1

java ×1

notepad++ ×1

php ×1

preg-split ×1

sed ×1