使用正则表达式查找所有带有撇号的单词

时间:2018-08-02 00:33:43

标签: c# regex

我很难解决这个问题 我需要获取所有包含撇号的单词,有时将单个单词用作撇号

这是我的正则表达式:

[\u0027\u2019]

这是我的例句:

'Chapert 2' 
Chapter's
chapters'

我的预期输出是

Chapter's
chapters'

但是我现在的代码是它获取包含撇号或单个qoute的所有单词。如何获得所有不以单引号或单个qoute开头的单词?

2 个答案:

答案 0 :(得分:2)

这应该给您想要的结果:

Regex rgx = new Regex(@"^[^'].*'.*$");
List<string> list = new List<string>() { "'Chapert 2'", "Chapter's", "chapters'" };

foreach(var item in list)
{
    if (rgx.IsMatch(item))
        Console.WriteLine(item);
}

故障

  • ^-字符串的开头。
  • [^']-一个不是'的字符。
  • .*-零个或多个字符。
  • '-必须至少要有一个'
  • .*-再次零个或多个任何字符结束字符串。
  • $-字符串结尾。

答案 1 :(得分:1)

^[^']就足够了。

  • 第一个^匹配字符串的开头
  • [^…]匹配除方括号内的每个字符之外的所有字符

因此^[^']匹配以非撇号字符开头的字符串。