c# - 如何仅匹配正则表达式中的第一个数字

标签 c# regex numbers

我有这个字符串

<h2 id="1">1. Item 1</h2>
<h2 id="1.2">1.2. Item 1.2</h2>
<h2 id="2">2. Item 2</h2>

我需要匹配文本中具有整数 1. 和 2. 的 header 。不是 1.2。

我是这样做的

<h2.*?>(.*?)[0-9]\.\s+(.*?)</h2>

它匹配所有 header 。我哪里错了?

最佳答案

删除 (.*?),然后在 [0-9] 后面添加 +,因为 (.*?) [0-9] 匹配任何字符零次或多次之前存在,这又匹配 1。

<h2.*?>[0-9]+\.\s+(.*?)</h2>

DEMO

关于c# - 如何仅匹配正则表达式中的第一个数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33300236/

相关文章:

javascript - 如何匹配多个序列

python - 为什么 'decimal.Decimal(1)' 不是 'numbers.Real' 的实例?

c# - 查找号码

c# - Prism 实际上为开发人员提供了什么?值得吗?

python - 使用多个定界符拆分字符串

arrays - 判断两个斐波那契数的邻接度

python - 对齐子列表中的数字

c# - 更改 IE 用户代理

c# - 如何访问词典项目?

javascript - 在遍历数组中有序的一系列字母时,如何避免将三次重复计数为对?