给出类似String a="- = - - What is your name?";
如何删除前导的等号,短划线,空格字符,以获得干净的文字
“你叫什么名字?”
答案 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\-]+/, '');