我正在使用正则表达式为一个文本框编写输入验证器,我只想要字母字符.我在想,如果[A-z]和[a-zA-Z]是相等的或是否存在差异明智的性能.
我继续阅读[a-zA-Z]我的搜索,没有提到[A-z].
我正在使用java的String.matches(regex).
我正在努力应对以下正则表达式
[A-z0-9]+
Run Code Online (Sandbox Code Playgroud)
如果对此字符串进行测试:
||a919238[.--a]asd|
Run Code Online (Sandbox Code Playgroud)
它返回a919238[,包括方括号..我试图在regex101上输入我的测试用例以了解什么是错的,但网站正则表达式的解释没有帮助,可能我无法看到我的错误.
为什么方括号包含在结果中?
用多种语言尝试了同样的结果.
JavaScript示例:
/[A-z]/.test("_"); // => true
/[A-z]/.test("0"); // => false
/[A-z]/.test("-"); // => false
/[A-z]/.test("A"); // => true
Run Code Online (Sandbox Code Playgroud)
为什么第一个案例没有退缩false?
我正在使用javascript正则表达式进行一些数据验证并指定我想接受的字符(我想接受任何字母数字字符,空格和以下内容!&,'\-,如果需要我可以稍后再添加一些).我的代码是:
var value = userInput;
var pattern = /[^A-z0-9 "!&,'\-]/;
if(patt.test(value) == true) then do something
Run Code Online (Sandbox Code Playgroud)
它工作正常,并排除了我不希望用户输入的字母,除了方括号和插入符号.从我读过的所有javascript正则表达式教程中,它们都是特殊字符 - 括号表示它们之间的任何字符和此实例中的插入符号意味着任何不在方括号之间的字符.我在这里和谷歌搜索了解为什么这些字符也被接受但无法找到解释.
所以任何人都可以帮忙,为什么我的输入接受方括号和插入符?
我有一个pandas数据框,其中包含一列“ iso”,其中包含化学同位素符号,例如“ 4He”,“ 16O”,“ 197Au”。我想使用中的annotate()功能在图上标记很多(但不是全部)同位素matplotlib。标签格式应具有上标原子质量。我可以使用LaTeX样式格式来做到这一点:
axis.annotate('$^{4}$He', xy=(x, y), xycoords='data')
Run Code Online (Sandbox Code Playgroud)
annotate()对于要标记的每种同位素,我可以写出数十种上述语句,但我希望实现自动化。
如何从iso列中提取同位素编号和名称?
提取这些片段后,我就可以制作标签了。可以说我们将它们转储到变量Num和中Sym。现在,我可以遍历同位素并执行以下操作:
for i in list_of_isotopes:
(Num, Sym) = df[df.iso==i].iso.str.MISSING_STRING_METHOD(???)
axis.annotate('$^{%s}$%s' %(Num, Sym), xy=(x[Num], y[Num]), xycoords='data')
Run Code Online (Sandbox Code Playgroud)
大概有一个pandas字符串方法,我可以放在上面。但是我很难找到解决方案。我一直在尝试split()并extract()使用几种不同的模式,但无法获得理想的效果。
使用以下代码从字符串列表中仅选择字母数字字符串:
isValid = function(string){
return(grep("^[A-z0-9]+$", string))
}
strings = c("aaa", "test@test.com", "", "valid")
print(Filter(isValid, strings))
Run Code Online (Sandbox Code Playgroud)
输出是[1] "aaa" "test@test.com".
为什么"valid"不输出,为什么"test@test.com"输出?
我正在使用java.util.regex.Pattern类来匹配Android程序中的字符串。
if(Pattern.matches("\\{\\{.*?}}", element.getValue())) {
...
} else {
...
}
Run Code Online (Sandbox Code Playgroud)
我得到了以下错误。
Caused by: java.util.regex.PatternSyntaxException: Syntax error in regexp pattern near index 8
\{\{.*?}}
Run Code Online (Sandbox Code Playgroud)
我正在使用Android Studio和Open JDK。为了测试正则表达式,我在Netbeans中编写了一个简单程序,它工作正常。Netbeans也使用openjdk。
System.out.println(Pattern.matches("\\{\\{.*?}}", "{{hello:sdf}}"));
Run Code Online (Sandbox Code Playgroud)
为什么正则表达式在android项目中给出错误?
如何删除字母NOT数字之间的空格
例如:
输入
I ES P 010 000 000 000 000 000 001 001 000 000 IESP 000 000
Run Code Online (Sandbox Code Playgroud)
产量
IESP 010 000 000 000 000 000 001 001 000 000 IESP 000 000
Run Code Online (Sandbox Code Playgroud)
我试过这样的事
gsub("(?<=\\b\\w)\\s(?=\\w\\b)", "", x,perl=T)
Run Code Online (Sandbox Code Playgroud)
但是无法达到我希望的输出
假设我运行以下
txt <- "client:A, field:foo, category:bar"
grep("field:[A-z]+", txt, value = TRUE, perl = TRUE)
Run Code Online (Sandbox Code Playgroud)
基于regexr.com我希望我会得到field:foo,但我得到了整个字符串。为什么是这样?
我想编写一个正则表达式来匹配可能包含单词和数字而不仅仅是数字的字符串。
我使用了这个正则表达式[A-z+\d*],但它不起作用。
一些匹配的样本:
expression123
123expression
exp123ression
Run Code Online (Sandbox Code Playgroud)
不匹配的样本:
1235234567544
Run Code Online (Sandbox Code Playgroud)
你能帮我解决这个问题吗?先感谢您