是否可以检查string
characters
numbers
中string
是否包含特殊characters
或"()1234567890!?_@#$%^&*.,'"
:
characters
但同时忽略这些特殊string
位于"Hell,o" is False
",.Hello" is False
"Whatc!hadoi66n" is False
"Hello," is True
"Hello,!'#" is True
的 end 的所有结果?
示例:
import { Directive , Input , ViewContainerRef , TemplateRef } from '@angular/core';
@Directive({
selector: '[appUnless]'
})
export class UnlessDirective {
@Input() set appUnless(condition : boolean) {
if(!condition) {
this.vcRef.createEmbeddedView(this.templateRef)
} else {
this.vcRef.clear();
}
}
constructor(private templateRef: TemplateRef<any> , private vcRef: ViewContainerRef) { }
}
答案 0 :(得分:2)
您可以使用str.rstrip
从字符串末尾删除所有尾随特殊字符,然后检查结果字符串和特殊字符集是否不相交。
def f(string, special="()1234567890!?_@#$%^&*.,'"):
return {*string.rstrip(special)}.isdisjoint(special)
In [5]: f("Hell,o")
Out[5]: False
In [6]: f("Hello!")
Out[6]: True
In [7]: f("Hello,!'#")
Out[7]: True
答案 1 :(得分:1)
这个正则表达式:
import re
re.match(r'[^()1234567890!?_@#$%^&*.,']*[()1234567890!?_@#$%^&*.,']*$', string)
正则表达式的第一部分要求字符串以不包含特殊字符的字符序列开头。第二部分最后匹配一个可能为空的特殊字符序列。