簡體   English   中英

正則表達式替換第一行中的某些字符

[英]Regex to replace certain characters on first line

我認為這很簡單,但是我無法在網上找到答案。 我發現了如何匹配多行字符串中的整個第一行的結果,但是沒有找到如何僅在第一行中找到某個特定字符的所有匹配項的結果。

因此,例如:

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"

這聽起來像是一個簡單的任務,對嗎? 如果是這樣,怎么辦? 我已經花了數小時來尋找解決方案,但是我在想,也許我根本不了解正則表達式邏輯。

在不知道您使用的確切語言的情況下,很難舉一個例子,但是理論很簡單:

如果您有復雜的任務,請將其分解。

在這種情況下,您只想對第一行做些事情。 因此,請分兩步進行:

  1. 識別第一行
  2. 在其上執行操作。

以此處的JavaScript為例,您的代碼可能如下所示:

var input =
    "HelloX dXudXe" + "\n" +
    "How areX yXou?" + "\n" +
    "FxIXne?";

var result = input.replace(/^.*/,function(m) {
    return m.replace(/X/g,'');
});

看看如何首先抓住第一行,然后再對其進行操作? 問題的分解是學習的一種很好的技巧;)

將字符串分成多行,在第一行進行替換,然后重新加入。

var lines = input.split('\n');
lines[0] = lines[0].replace(/X/g, '');
input = lines.join('\n');

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM