我认为这是一件非常简单的事情,但我无法在网上的任何地方找到答案。我找到了关于如何匹配多行字符串中的整个第一行的结果,但没有找到如何仅在第一行找到某个字符的所有匹配项。
例如:
HelloX dXudXe
How areX yXou?
FxIXne?
仅在第一行匹配所有大写的 X,并将其替换为任何内容将导致:
Hello dude
How areX yXou?
FxIXne?
这只匹配第一个 X:
/X/m
这匹配所有 X:
/X/g
所以我猜答案是这些语句之一的正则表达式版本:
"Replace all X characters until you find a newline"
"Replace all X characters in the first line"
这听起来很简单,是吗?如果是这样,怎么办?我花了几个小时寻找解决方案,但我想也许我根本不了解正则表达式逻辑。
最佳答案
在不知道你使用的确切语言的情况下,很难举个例子,但理论很简单:
如果您有一项复杂的任务,请将其分解。
在这种情况下,您只想对第一行做一些事情。因此,分两步进行:
- 确定第一行
- 对其执行操作。
此处以 JavaScript 为例,您的代码可能如下所示:
var input =
"HelloX dXudXe" + "\n" +
"How areX yXou?" + "\n" +
"FxIXne?";
var result = input.replace(/^.*/,function(m) {
return m.replace(/X/g,'');
});
看看我是如何先抓取第一行,然后再对其进行操作的?这种分解问题是一项很好的学习技能;)
关于javascript - 正则表达式替换第一行的某些字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29957123/