正则表达式,排除某些单词以外的所有单词 - c#

我虽然过滤像这样的字符串:
"Hello <strong>plip</strong> plop"
获得
"plip plop",也就是说,使用此C#行可以轻松排除“ plip”和“ plop”以外的所有单词:
new Regex("[^(plip)(plop)]").Replace(inputString,"")
不幸的是,排除括号[^]似乎不接受排除词,因为它会将每个字母保留在'plip'和'plop'中(结果为"llooplipoplop")。

有没有办法在单个正则表达式/行中实现此目标,还是有必要循环其他所有plip和plop匹配项,然后对其进行组合?

参考方案

一般而言,编写与所需内容匹配的正则表达式要比与所有不需要的内容匹配的正则表达式容易得多。

在这种情况下,您想“排除除plipplop以外的所有单词”,但是为什么不只包含plipplop呢?

var input = "Hello <strong>plip</strong> plop";
var matches = Regex.Matches(input, "plip|plop");
var result = string.Join("", matches.Cast<Match>().Select(x => x.Value));

Console.Out.WriteLine(result); // prints "plipplop"

当然,由于您要求单行代码,因此您可以在没有temp变量的情况下做所有事情(并祝下一个阅读代码的人好运!):

var result = string.Join("", Regex.Matches("Hello <strong>plip</strong> plop", "plip|plop").Cast<Match>().Select(x => x.Value));

另外,假设您的实际单词列表比plipplop更复杂,则可以执行var pattern = string.Join("|", words);之类的方式来构造模式。

Div单击与单选按钮相同吗? - php

有没有一种方法可以使div上的click事件与表单环境中的单选按钮相同?我只希望下面的div提交值,单选按钮很丑代码输出如下:<input id="radio-2011-06-08" value="2011-06-08" type="radio" name="radio_date&#…

提交表单后显示模式对话框 - php

提交下载文件后,我有一张表格。我要自动而不是自动下载文件..以显示模态对话框并显示下载链接。<form name="softwareform" id="softwareform" action="../downloadlink.php" method="POST" alig…

DataSourceTransactionManager和JndiObjectFactoryBean和JdbcTemplate的用途是什么? - java

以下的用途是什么:org.springframework.jdbc.core.JdbcTemplate org.springframework.jdbc.datasource.DataSourceTransactionManager org.springframework.jndi.JndiObjectFactoryBean <tx:annotatio…

使用XPath在PHP中提取XML - php

我有以下XML:<root> <level name="level1"> <!-- More children <level> --> </level> <level name="level2"> <!-- Some more childre…

页面加载而不是提交时发生struts验证 - java

请原谅我;我对Struts有点陌生。我遇到一个问题,即页面加载而不是我实际提交表单时发生了验证。我整天都在论坛上搜寻和搜寻,没有任何运气。我显然做错了一些事情,应该很容易确定,但是我还没有发现问题所在。这是我的struts.xml的片段:<action name="*Test" method="{1}" clas…