我需要从这样的字符串中获取数字:
我的第一直觉是这样做:
\w+\.(?<number>\[\d+\])|(?<number>\d+)\.\w+
但这会失败并出现错误:“?子模式名称必须是唯一的”。
(\.\[*(.*)\]*\.)
这将与 .[10] 匹配。或 .10.
比赛将分为两个小组。第 1 组将是.[10]。第 2 组将为 10 您可以在第 2 组中获得所需的值。
\.
- 期待一个点
\[*
- 期望 0 或更多 [
(.*)
- 与任何角色匹配
\]*
- 预计 0 或更多 ]
\.
- 期待一个点
基本上 (.*) 该组将捕获 .[ 和 ] 之间的任何内容。其中 [ 和 ] 是可选的。您可以根据您的要求将此处的 [ 和 ] 替换为任何字符集。
例如是否可以用除数字之外的任何字符来代替 [ 和 ]
(\.[^0-9]*([0-9]+)[^0-9]*\.)