错别字的烦恼一大早就接到了个任务,要用正则来识别价格的变动情况,价格表的信息如下:苹果 6.00 09/17平果 6.50 09/18香蕉 3.00 09/17香蕉 4.00 09/18...怎么才能找出苹果的价格呢?灵机一动,还是用正则吧。噼噼啪啪的键盘声后,有了下面的表达式:(苹果)\t(\d+\.\d+)\t(\d+/\d+
\D 匹配一个非数字字符。等价于 [^0-9]。
\f 匹配一个换页符。等价于 \x0c 和 \cL。
\n 匹配一个换行符。等价于 \x0a 和 \cJ。
\r 匹配一个回车符。等价于 \x0d 和 \cM。
\s 匹配任何空白字符,包括空格、制表符、换页符等等。等价于 [...
最前面的“/”与最后面的“/”是分隔符,表示
正则表达式
的开始与结束。最后的“g”标志表示
正则表达式
使用的global(全局)的状态。使用 global 标志表明在被查找的字符串中搜索操作将查找所有符合的项,而不仅仅是第一个。这也被称为全局匹配。【相关的标志还有i(ignoreCase,表示忽略大小写)、m(multiline,表示允许跨行)】
然后我们再来看中间的主体部分:\{\{(.+?)\}\...
* @typedef {Array} TestObject - 测试单元
* @type {string} TestObject[0] - 用户输入的要测试的
价格
* @type {boolean} TestObj...
"\t"为转义字符,有特定的功能,代表的键盘上的一个Tab键的功能,也就是8个空格。
'\t'为字符类型,将相当于"x"与'x'的区别,'\t',有一个ASCII码而"\t"没有。
一般输出空格最好用"\t",而非'\t',代码注释中有详细讲解
其它区别代码注释中也有详细讲解
public class SpaceTest
public static void main(String[] args)
//注意+号有时表示连接号有时表示运算符号,'\t
'\t'在Java中的含义为补全空格,具体使用时常用“+”连接,遵循如下规则
① 如果'\t'前所连接内容长度不是8的整数倍,那么'\t'会添加相应的空格数使总长度达到最近的8的整数倍
public class zhuanyizifuTceshi
public static void main(String[] args)
System.out.println("000000\t前面内容有6位,补2个空格");
System.o
正则表达式
如下:/(^[1-9]\d*(\.\d{1,2})?$)|(^0(\.\d{1,2})?$)/
价格
符合两种格式
^[1-9]\d*(.\d{1,2})?$ : 1-9开头,后跟是0-9,可以跟小数点,但小数点后要带上1-2位小数,类似2,2.0,2.1,2.22等
^0(.\d{1,2})?$ : 0开头,后可以跟小数点,小数点后要待上1-2位小数,类似0,0.22,0.1等
代码如下(可
```java
String text = "从下面文字中通过java
正则表达式
提取四川东部、南部、西部、北部、东南部、东北部、西南部、西北部";
Pattern pattern = Pattern.compile("四川(东部|南部|西部|北部|东南部|东北部|西南部|西北部)");
Matcher matcher = pattern.matcher(text);
while (matcher.find()) {
String region = matcher.group(1);
System.out.println(region);
其中,Pattern.compile("四川(东部|南部|西部|北部|东南部|东北部|西南部|西北部)") 表示创建一个
正则表达式
模式,用于匹配文本中的四川各个部分。Matcher matcher = pattern.matcher(text) 表示创建一个Matcher对象,用于对文本进行匹配。while (matcher.find()) 表示在文本中查找匹配的内容,并进行循环输出。matcher.group(1) 表示获取匹配的第一个分组内容,即四川各个部分的名称。输出结果为: