Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/ant/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Regex:选择不带单词的标记的内容,直到|_Regex - Fatal编程技术网

Regex:选择不带单词的标记的内容,直到|

Regex:选择不带单词的标记的内容,直到|,regex,Regex,我有更多的标签。我想选择没有文字的内容,并替换为其他内容。例如: WORD\u 1 WORD\u 2 |废话 WORD\u 3 WORD\u 4 WORD\u 5 WORD\u 6 WORD\u7 WORD\u8\dammmmmmm 希望选择替换: WORD\u 1 WORD\u 2 WORD\u 3 WORD\u 4 WORD\u 5 WORD\u 6 WORD\u 7 WORD\u 8 或者,换句话说,我想选择标签的所有内容,直到第二部分(直到|)您可以使用以下正则表达式完成此操作 (?

我有更多的标签。我想选择没有文字的内容,并替换为其他内容。例如:

WORD\u 1 WORD\u 2 |废话

WORD\u 3 WORD\u 4

WORD\u 5 WORD\u 6

WORD\u7 WORD\u8\dammmmmmm

希望选择替换:

  • WORD\u 1 WORD\u 2
  • WORD\u 3 WORD\u 4
  • WORD\u 5 WORD\u 6
  • WORD\u 7 WORD\u 8

或者,换句话说,我想选择标签的所有内容,直到第二部分(直到
|

您可以使用以下正则表达式完成此操作


(?虽然前面的答案很好,但我建议更快(优化)正则表达式模式:

(<title>).+?(?=\||<title>)
().+?(?=\\\| |)


性能比较:

具有PHP(PCRE)风格:

()。+(?=\\\\| |)
-4个匹配项,260步(~229ms)


(?你用的是什么语言?记事本++窗口,反之亦然?如果我只想保留单词直到
并删除所有标记?最后一种情况是,如果我想删除所有标记并只保留
之后的单词?不,最后一个正则表达式不起作用。也许你忘了选择第一个打开的标记?@RobRob yes,它确实有效。你还想替换
WORD\u3 WORD\u4
WORD\u5 WORD\u6
?是的,当然,哦,男孩。我忘了在我的示例中写下,
之后有两个单词,而不是像
那样只有一个。所以,如果
之后只有一个单词,你的正则表达式可以工作。但是如果
之后有很多单词|
(<title>).+?(?=\||<title>)