在python中,我想知道如何传递检查的字符串:
- 如果某些内容只包含字母数字字符
- 如果某些东西只包含数字
- 如果某些东西既不包含字母数字字符也不包含数字。
我很难搞清楚语法,我特别需要这些字符串,而不是使用内置函数进行词法分析。以下将清楚我想要做的事情的想法:
alphanumeric=r'[a-zA-Z]+'
digit=r'[0-9]'
other=r'![a-zA-Z_0-9]'
alphabet = {alphanumeric ,digit,other}
此字母表以及其他DFA属性将通过一些用户定义的字符串输入到dfa对象的函数run_with_input_list()中。 dfa类结构如下:
class DFA:
current_state = None
def __init__(self, states, alphabet, transition_function, start_state, accept_states): #5-tupple
self.states = states
self.alphabet = alphabet
self.transition_function = transition_function
self.start_state = start_state
self.accept_states = accept_states
self.current_state = start_state
return
def transition_to_state_with_input(self, input_value):
if ((self.current_state, input_value) not in self.transition_function.keys()):
self.current_state = None
return
self.current_state = self.transition_function[(self.current_state, input_value)]
return
def in_accept_state(self):
if self.current_state in self.accept_states:
print("String Accepted")
else:
print("String Rejected")
def go_to_initial_state(self):
self.current_state = self.start_state
return
def run_with_input_list(self, input_list):
self.go_to_initial_state()
for inp in input_list:
self.transition_to_state_with_input(inp)
continue
return self.in_accept_state()
pass
def validity(self,input_list): #checking whether the input string is valid
for a in input_list:
if a in self.alphabet:
continue
else:
print("Invalid String")
return 0
return 1
我不太明白“假冒”是什么意思,但这些是你可以使用的方法:
1)检查它是否只包含字母
print("abcd".isalpha()) #True
print("abcd123".isalpha()) #False
print("123".isalpha()) #False
2)检查它是否只包含数字
print("123".isnumeric()) #True
print("abcd".isnumeric()) #False
print("abcd123".isnumeric()) #False
3)检查它是否只包含字母/数字
print("abc123".isalnum()) #True
print("abc???".isalnum()) #False
Python正则表达式已经有了特殊字符 - 数字有\d
字母数字有\w
,非字母数字字符有\W
。
Python为此类操作提供了标准帮助程序,请看这个示例:
def what_is(s):
is_num = s.isnumeric()
is_alpha = s.isalpha()
is_other = not is_num and not is_alpha
return is_num, is_alpha, is_other
def main():
alpha = "Ciao"
num = "0102"
other = "£*+]"
print(what_is(alpha))
print(what_is(num))
print(what_is(other))