0

我有下一个正则表达式:

const string pattern        = "(\\w)</span>";
const string replace        = "$1&nbsp;</span>";
var rgx                     = new Regex(pattern);

因此,它匹配所有以它结尾并在其前面有一个符号的东西。我想让它匹配相同的短语,除了结尾有标点符号的那个

例子:

 Mom</span>, is awesome ....

我也不希望它匹配:

Adventure is the best</span>. So now we keep on doin it ...

我试过 :

const string pattern        = "(\\w)</span>[^\\W]$";
const string pattern        = "(\\w)</span>(^\\W)$";

但它根本没有用。

我正在寻找的结果:如果有一个短语:

Mom</span>, Dad

作为 html 文本的一部分,我不想匹配它,因为我不想在逗号前面添加空格 -> Mom , Dad 。我希望它在被解析后留下妈妈,爸爸。

但如果我有:

Mom</span>and Dad (After parsing it comes like : Momand Dad)

我在“and”之前加了一个空格,这样解析后就可以变成“爸爸妈妈”了。

我希望现在你能明白我想要做什么!

4

3 回答 3

2

试试这个:

const string pattern  = "(\\w)</span>(?![.])";

如果标点符号前可能有一些空格,您可以尝试以下操作:

const string pattern  = "(\\w)</span>(?!\s*[.])";
于 2013-08-19T07:04:15.490 回答
0

怎么样:

    const string pattern        = "(\\w)</span>[^,.]";

这个 [^,.] 表示任何一个不同于: , 或 的字符。

您可以扩展为 [^,.;:] 或您需要的任何其他内容,也许您可​​以使用 [^,.] 像 * 或 + 这样的量词来指定可能有多个标点符号。

于 2013-08-19T07:09:16.350 回答
0
    I tried something but i could not get any direct idea. Just sharing some different method.
    Have two pattern one with punctuation and another without punctuation

    Without punctuation pattern:
        const string pattern = "(\\w)</span>([^\.\,]+)$"; (u replace with space)
    Another one with punctuation pattern:
        const string pattern = "(\\w)</span>[\,\.\\w]+$"; (u replace without space)


In both pattern add the punctuations you want at end eg. ([^\:\;]+)$
于 2013-08-19T07:12:57.233 回答