问题标签 [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.

0 投票
1 回答
65 浏览

c# - 正则表达式用函数替换匹配并删除其他匹配

我有一个类似下面的字符串,我想用函数的输出替换 FieldNN 实例。

到目前为止,我已经能够用函数的输出替换 NN 实例。但我不确定如何使用相同的正则表达式删除静态“字段”部分。

输入字符串:

所需输出:

这是我到目前为止的代码:

这使:

我想解决的问题是:

  1. 从输出中删除静态“字段”前缀。
  2. 使“FieldNN”部分的正则表达式不区分大小写,而不是小写引用的文本部分。
  3. 使正则表达式更健壮,以便引用的字符串部分使用双引号或单引号。
  4. 使正则表达式更健壮,以便忽略空格:FieldNN = "AAA" vs. FieldNN="AAA"

我真的只需要解决第一个问题,其他三个将是一个奖励,但一旦我发现了正确的空格和引号模式,我可能会解决这些问题。

更新

我认为下面的模式解决了问题 2. 和 4。

0 投票
1 回答
218 浏览

c# - MatchEvaluator 给出“不能使用 lambda 表达式...”错误

我正在修改几个文件的内容。我在表单中有这个正则表达式,它直接从按钮的单击事件中调用。

这工作正常。我已将此代码(正则表达式替换)移动到另一个项目并收到以下错误:

如果不首先将 lambda 表达式转换为委托或表达式树类型,则无法将 lambda 表达式用作动态分派操作的参数

我没有直接在事件函数中调用正则表达式替换,我猜这就是导致错误的原因。我不知道如何解决它。检查以下代码。这是我正在使用的结构。省略不相关的部分。

这可能是重复的,因为这个确切的错误还有其他问题,但我找不到可以在我的代码中实现的东西。

有人可以将标题更改为更合适的标题。我不希望标题成为错误,因为已经存在几个问题。

0 投票
1 回答
71 浏览

c# - 从 MatchEvaluator 委托调用的方法中返回一个 out 参数值?

我有现有的方法,每个方法都返回一个 String 类型。现在,我需要从一个方法返回附加值并将其传递给另一个。我发现一种方法是使用“out 参数”。

我要返回的值 (paramObject) 来自 MatchEvaluator 委托调用的方法。

var result = Regex.Replace(param1, pattern, new MatchEvaluator(m => MethodToMatch(m, param2, out SomeObject paramObject)));

这甚至可能吗?如果没有,是否有任何解决方法或其他方法来实现这一目标?

提前感谢您的帮助。