代码之家  ›  专栏  ›  技术社区  ›  Anil Soman

正则表达式查找具有特定字符的单词

  •  0
  • Anil Soman  · 技术社区  · 6 年前

    如何找到所有包含特定字母的单词?

    例如,如果我的字符串是

    This is a Station called South Yarra
    

    然后我要提取所有单词中的字母“a”。比赛将是

    "a", "Station", "called", "Yarra"
    

    到目前为止我已经试过了

    Regex regex = new Regex(@"\w[a]\w");
    
    Regex regex = new Regex(@"\s[a*]\s");
    
    3 回复  |  直到 6 年前
        1
  •  1
  •   Raka    6 年前

    尝试使用下面的正则表达式

    Regex regex = new Regex(@"[^\s]*[a][^\s]*");
    
        2
  •  1
  •   Wyck    6 年前

    根据您希望如何处理标点符号(如连字符),请考虑仅使用 \w*a\w* .

    仅供参考: \w 匹配 单词 性格。

        3
  •  1
  •   Prasad Telkikar    6 年前

    使用Linq的不带regex的解决方案:

    List<string> arr = s.Split(' ').Where(x => x.Contains('a')).ToList();
    

    string.Split(' ') :它返回包含此实例中由“”分隔的子字符串的字符串数组

    Enumerable.Where(predicate) :基于谓词的筛选序列

    Enumerable.Contains() :确定序列是否包含指定元素

    POC公司: .net Fiddle