问题标签 [matchevaluator]
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# - 正则表达式用函数替换匹配并删除其他匹配
我有一个类似下面的字符串,我想用函数的输出替换 FieldNN 实例。
到目前为止,我已经能够用函数的输出替换 NN 实例。但我不确定如何使用相同的正则表达式删除静态“字段”部分。
输入字符串:
所需输出:
这是我到目前为止的代码:
这使:
我想解决的问题是:
- 从输出中删除静态“字段”前缀。
- 使“FieldNN”部分的正则表达式不区分大小写,而不是小写引用的文本部分。
- 使正则表达式更健壮,以便引用的字符串部分使用双引号或单引号。
- 使正则表达式更健壮,以便忽略空格:FieldNN = "AAA" vs. FieldNN="AAA"
我真的只需要解决第一个问题,其他三个将是一个奖励,但一旦我发现了正确的空格和引号模式,我可能会解决这些问题。
更新
我认为下面的模式解决了问题 2. 和 4。
c# - MatchEvaluator 给出“不能使用 lambda 表达式...”错误
我正在修改几个文件的内容。我在表单中有这个正则表达式,它直接从按钮的单击事件中调用。
这工作正常。我已将此代码(正则表达式替换)移动到另一个项目并收到以下错误:
如果不首先将 lambda 表达式转换为委托或表达式树类型,则无法将 lambda 表达式用作动态分派操作的参数
我没有直接在事件函数中调用正则表达式替换,我猜这就是导致错误的原因。我不知道如何解决它。检查以下代码。这是我正在使用的结构。省略不相关的部分。
这可能是重复的,因为这个确切的错误还有其他问题,但我找不到可以在我的代码中实现的东西。
有人可以将标题更改为更合适的标题。我不希望标题成为错误,因为已经存在几个问题。
c# - 从 MatchEvaluator 委托调用的方法中返回一个 out 参数值?
我有现有的方法,每个方法都返回一个 String 类型。现在,我需要从一个方法返回附加值并将其传递给另一个。我发现一种方法是使用“out 参数”。
我要返回的值 (paramObject) 来自 MatchEvaluator 委托调用的方法。
var result = Regex.Replace(param1, pattern, new MatchEvaluator(m => MethodToMatch(m, param2, out SomeObject paramObject)));
这甚至可能吗?如果没有,是否有任何解决方法或其他方法来实现这一目标?
提前感谢您的帮助。