问题标签 [capturecollection]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c# - 如何单独替换组的每个捕获?
我有一个正则表达式,它GroupCollection
在它的捕获中使用 s 来捕获一组项目 ID(可以用逗号分隔,也说明最后一个有“和”这个词):
(\bItem #(?<ITEMID>\d+))|(,\s?(?<ITEMID>\d+))|(,?\sand\s(?<ITEMID>\d+))
有没有一种简单的方法使用 C# 的Regex
类来用 url 替换 ITEMID 数字?现在,我有以下内容:
我在网上找到的CustomReplace
方法是在字符串源中用另一个字符串替换一个字符串的简单方法。问题是我确信可能有一种更简单的方法,可能会根据需要使用Regex
类来替换GroupCollection
s 。我只是想不通那是什么。谢谢!
示例文本:
Hello the items you are looking for are Item #25, 38, and 45. They total 100 dollars.
25
, 38
, 并且45
应该替换为我正在创建的 URL 字符串(这是一个 HTML 字符串)。
c# - c# 正则表达式捕获
我正在匹配一个包含可选组和非可选组混合的重复组。当我遍历捕获时,捕获集合总是折叠的,即它们不会为不匹配的项目插入空元素。
有没有办法保留捕获集合中的匹配顺序,以便将任何省略的可选项插入为空,从而确保捕获集合元素跨组对应?
为了澄清,假设我的重复(父)组匹配了三次,并且在三个匹配中的一个中,省略了一个可选的子组,但存在于其他两组中,我最终得到了子组的捕获集合比其他捕获集合少一个元素。我如何知道哪些父组省略了可选项目?
我想可以使用捕获集合项的 Index 属性并检查它是否在父组的范围内,但是如果非匹配项在捕获集合中返回 null 项会更容易。有没有办法做到这一点?