我是正则表达式的新手,我正在寻找创建包含的表达式:
我在考虑将\ p {Punct}与\ d混合,但我不确定这是否是最好的方法。
如何以最佳方式定义正则表达式?
提前致谢!
答案 0 :(得分:1)
只需将两个模式放在字符类"[\\p{Punct}\\d]"
中,或者通过在+
之类的字符类旁边添加"[\\p{Punct}\\d]+"
量词,使其重复一次或多次,以便它匹配一个或更多标点符号或数字。
答案 1 :(得分:1)
我假设您想要分别获取数字和符号,因此您可以通过简单的替换(不需要使用Punct
类,使用自定义字符类)来执行此操作:
[0-9]+|[-+/*]
你可以像这样减少正则表达式引擎的工作(快速跳过所有非数字或操作符):
(?=[0-9+/*-])(?:[0-9]+|[-+/*])
其中(?=[0-9+/*-])
是一个断言,表示后面跟一个数字或+
,/
,*
,-
< / p>