簡體   English   中英

正則表達式刪除前導空白和破折號字符

[英]Regular Expression remove leading blank and dash character

給定一個字符串,比如String a="- = - - What is your name?";

如何刪除前導等號、破折號、空格字符,以獲得干凈的文本,

“你叫什么名字?”

如果你想刪除前導的非字母,你可以匹配:

^[^a-zA-Z]+

並將其替換為'' (空字符串)。

解釋:

  • first ^ - 在開始時匹配的錨點。
  • [] - 字符類
  • second ^ - 字符類中的否定
  • + - 一場或多場上一場比賽

因此,正則表達式匹配字符串開頭的一個或多個任何非字母。

在您的情況下,它將刪除所有前導空格、前導連字符和前導等號。 簡而言之,第一個字母表之前的所有內容。

 $a=~s/- = - - //;

在 Javascript 中你可以這樣做

var a = "- = - - What is your name?";
a = a.replace(/^([-=\s]*)([a-zA-Z0-9])/gm,"$2");

爪哇:

String replaced = a.replaceFirst("^[-= ]*", "");

假設 Java 嘗試這個正則表達式:

 /^\W*(.*)$/

從捕獲的組 1 中檢索您的字符串!

\\W*匹配所有前面的非單詞字符
(.*)然后匹配從第一個單詞字符開始到結尾的所有字符

^,$ 是邊界。 在這種情況下,您甚至可以不用 $。

提示嘗試優秀的Java 正則表達式教程以供參考。

在 Python 中:

>>> "- = - - What is your name?".lstrip("-= ")
'What is your name?'

要刪除任何類型的空格,請使用.lstrip("-= \\t\\r\\n")

在 Javascript 中,我需要這樣做並使用以下正則表達式:

^[\s\-]+

並用 '' (空字符串)替換它,如下所示:

yourStringValue.replace(/^[\s\-]+/, '');

暫無
暫無

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

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