正则表达式删除前导空格和短划线字符

时间:2010-03-15 12:22:34

标签: regex

给出类似String a="- = - - What is your name?";

的字符串

如何删除前导的等号,短划线,空格字符,以获得干净的文字

  

“你叫什么名字?”

7 个答案:

答案 0 :(得分:5)

如果您要删除可以匹配的前导非字母:

^[^a-zA-Z]+

并将其替换为''(空字符串)。

说明:

  • first ^ - 锚点匹配 begining。
  • [] - char class
  • second ^ - 在char类中否定
  • + - 上一场比赛中的一项或多项

因此正则表达式匹配字符串开头的任何非字母表中的一个或多个。

在你的情况下,它将摆脱所有前导空格,前导连字符和前导等号。简而言之,在第一个字母表之前的所有内容。

答案 1 :(得分:1)

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

答案 2 :(得分:1)

在Javascript中你可以这样做

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

答案 3 :(得分:1)

爪哇:

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

答案 4 :(得分:0)

假设Java试试这个正则表达式:

 /^\W*(.*)$/

从捕获的组1中检索您的字符串!

\W*匹配所有前面的非单词字符
(.*)然后将所有字符匹配到以第一个单词字符

开头的结尾

^,$是边界。在这种情况下你甚至可以没有$。

提示尝试优秀的Java regex tutorial作为参考。

答案 5 :(得分:0)

在Python中:

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

要删除任何类型的空格,请使用.lstrip("-= \t\r\n")

答案 6 :(得分:0)

在Javascript中,我需要执行此操作,并使用以下正则表达式进行了操作:

^[\s\-]+

,将其替换为”(空字符串),如下所示:

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