任何人都可以在以下正则表达式中找到错误:
regex =([。0-9] + [/ -_ \“:·'ー' - ` - '。, - \ 0-9] *)
我的目的是匹配任何类型的“数字”字符串,但如果数字后跟例如我只想写一封信。
当我使用以下句子时:
s1 = Bla bla 805P bla 1080P; bla bla
s2 = Bla bla 5600p bla 5400p
它会在805P
中找到1080P
和s1
,在5600
中找到5400
和s2
。
您可以使用http://regexpal.com
我也在Regex Buddy中使用了这个正则表达式,它给了我一个对字母没有任何说明的描述
如果第二组字符中没有包含字母,有没有人知道为什么我会在P
中抓住P;
和s1
?
答案 0 :(得分:2)
您使用0
转义-
而非-\0
。而且,这非常复杂;你需要的只是
pattern = "([.0-9]+[^A-Za-z]*)"
即。 “一个或多个数字或句点后跟尽可能多的非字母字符”。如果需要,您可以向第二个块添加更多要忽略的字符。见demo
答案 1 :(得分:2)
正则表达式的一部分是[... ,-\\ ...]
,其中包含逗号和反斜杠之间的任何字符,其中包括以下字符:
,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\
顺便提一下,这包括P
。
要匹配字符类中的文字减号,它必须是first,last或escapeped。 E.g。
[- ... ,\\ ... ]
[ ... ,\\ ... -]
[ ... ,\-\\ ... ]
都是写出你想要的有效方法。