如何用正则表达式匹配(和)符号,以及如何匹配[和]符号?

如题所述

源字符串形如:select -k df38178f-a228-4dda-b25c-dfd7a2b9a618 -s -x -send -recv

其中连字符『-』开头的如『-k』、『-s』、『-send』等为控制符;

非连字符开头的如『select』、『df38178f-a228-4dda-b25c-dfd7a2b9a618』为关键字。请问用正则表达式该如何分别获取控制符和关键字呢?

我使用 (?:\-)\S+\b 来匹配控制符的话,结果为:

共找到 6 处匹配:

-k

-a228-4dda-b25c-dfd7a2b9a618

-s

-x

-send

-recv

显然将UUID中的连字符也匹配进去了。 

温馨提示:内容为网友见解,仅供参考
第1个回答  2017-08-02
var str1 = " ('小A','女',21,'大一'), ('小B','男',23,'大三'), ('小C','男',24,'大四'), ('小D','女',21,'大一'), ('小E','女',22,'大四'), ('小F','男',21,'大一'), ('小G','女',22,'大二'), ('小H','女',20,'大三'), ('小I','女',20,'大一'), ('小J','男',20,'大三')";

var students = str1.match(/\([^\)]*\)/g)
解释:
这是在javascript环境下的代码,运行后
students是个数组,以下是students包含的所有元素:
0:"('小A','女',21,'大一')"
1:"('小B','男',23,'大三')"
2:"('小C','男',24,'大四')"
3:"('小D','女',21,'大一')"
4:"('小E','女',22,'大四')"
5:"('小F','男',21,'大一')"
6:"('小G','女',22,'大二')"
7:"('小H','女',20,'大三')"
8:"('小I','女',20,'大一')"
9:"('小J','男',20,'大三')"
第2个回答  2011-11-11
使用转义 \
\(
\)
\[
\]

参考资料:http://deerchao.net/tutorials/regex/regex.htm#escape

本回答被提问者采纳
相似回答