c# - 在食物成分文本中查找 "E numbers"的正则表达式

标签 c# regex vb.net

我正在从事一个分析食品的项目。使用 VB.net、C# 和使用 MS SQL Server 数据库进行编程。

我现在需要在成分文本字段中找到每次出现的“E 编号”。 (E 数字是食品添加剂的欧洲标准编码系统,se Wikipedia here)。

E 数字具有以下格式:

  1. 大写字母“E”(1 个字符)。
  2. 一个可选的[空格](0 - 1 个字符)。
  3. 100 到 1600 之间的三位或四位数字(3 - 4 个字符)。
  4. “a”到“f”(0 - 1 个字符)范围内的可选 smallCAP 字母。
    使其总共有 4 到 7 个字符的长度。

*数字通常用括号括起来和/或立即与成分名称连接,然后(可能)在其前后不留任何空格或分隔符。

示例:E100、甲醛(E 240)、E300b、E 1234a、(E1321)。

我需要返回文本中的所有 E 编号(如上格式)。可以有很多。
有什么想法吗?

- 从来没有抽出时间正确学习 RegExp,因此出现了这个问题。

最佳答案

您可以使用正则表达式模式 E ?\d{3,4}[a-f]? 请参阅 online demo .

  • E ? - 必须以 E 开头,后跟可选空格(? 使前面的空格可选)。
  • \d{3,4} - 接下来的三四个字符必须是数字
  • [a-f]? - 最后一个字符可以是 af
  • 之间的任意字母

您可以像这样搜索所有匹配项:

foreach (Match m in Regex.Matches(input, pattern))
    Console.WriteLine(m.Value);

关于c# - 在食物成分文本中查找 "E numbers"的正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35026411/

相关文章:

vb.net - 以编程方式更改Word文档的版本?

c# - DataGridView 在更新和重新加载后保留选定的索引和滚动位置

javascript - 在 JavaScript 中匹配 IMDb url

c# - 如何使用 bool 变量切换 EntityFramework Tracker

用于自定义序列类型的 Python re

python - Python 中捕获组的字符串操作

vb.net - TreeView 的根节点被复制

c# - 传递 HTML 页面字符串并使用 HtmlAgilityPack 进行抓取

c# - 有人说 "C# program should communicate with unmanaged COM code using the Single Threading Apartment"是什么意思

c# - Linux 中的 .net 核心 - 构建 C#