For example
!@#123myname --> myname
!@#yourname!@#123 --> yourname!@#123
There are plenty of S.O. examples of \"most pythonic ways of re
You could use a regex matching non-alphanumeric chars at the start of the string:
s = '!@#myname!!'
r = re.compile(r"^\W+") # \W non-alphanumeric at start ^ of string
Output:
In [28]: r = re.compile(r"^\W+")
In [29]: r.sub("",'!@#myname')
Out[29]: 'myname'
In [30]: r.sub("",'!@#yourname!@#')
Out[30]: 'yourname!@#'
\W+
will keep underscores so to just keep letters and digits at the start we can:
s = '!@#_myname!!'
r = re.compile(r"^[^A-Za-z0-9]+")
print(r.sub("",s))
myname!!
If you want to just remove up to the first letter:
r = re.compile(r"^[^A-Za-z]+")
If you want to remove leading non-alpha/numeric values:
while not s[0].isalnum(): s = s[1:]
If you want to remove only leading non-alphabet characters:
while not s[0].isalpha(): s = s[1:]
Sample:
s = '!@#yourname!@#'
while not s[0].isalpha(): s = s[1:]
print(s)
Output:
yourname!@#
Just use str.lstrip
.
It takes a string containing the characters to remove from the left side of the string, and will remove those characters regardless of the order in which they appear. For example:
s = "!@#yourname!@#"
print s.lstrip('@!#') # yourname!@#