当前位置: 编程技术>其它
正则应用之 逆序环视探索 .
来源: 互联网 发布时间:2014-10-17
本文导语: 1 问题引出 前几天在CSDN论坛遇到这样一个问题。 我要通过正则分别取出下面 与 之间的字符串 1、在 与 之间的字符串是没法固定的,是随机自动生成的 2、其中 与 的数量也是没法固定的,也是随机自动生成的 ** 这里是...
1 问题引出
前几天在CSDN论坛遇到这样一个问题。
我要通过正则分别取出下面 与 之间的字符串
1、在 与 之间的字符串是没法固定的,是随机自动生成的
2、其中 与 的数量也是没法固定的,也是随机自动生成的
** 这里是不固定的字符串1 **
** 这里是不固定的字符串2 **
** 这里是不固定的字符串3 **
有朋友给出这样的正则“(?
对于逆序肯定环视(?目前支持逆序环视的语言还比较少,比如当前比较流行的脚本语言JavaScript中就是不支持逆序环视的。个人认为不支持逆序环视已成为目前JavaScript中使用正则的最大限制,一些使用逆序环视很轻松搞定的输入验证,却要通过各种变通的方式来实现。
需求:验证输入由字母、数字和下划线组成,下划线不能出现在开始或结束位置。
对于这样的需求,如果支持逆序环视,直接“^(?!_)[a-zA-Z0-9_]+(?
而另一些流行的语言,比如Java中,虽然支持逆序环视,但只支持固定长度的子表达式,量词也只支持“?”,其它不定长度的量词如“*”、“+” 、“{m,n}”等是不支持的。
源字符串:
需求:取得div标签的内容,不包括div标签本身
Java代码实现:
import java.util.regex.*;
String test = "
String reg = "(?
前几天在CSDN论坛遇到这样一个问题。
我要通过正则分别取出下面 与 之间的字符串
1、在 与 之间的字符串是没法固定的,是随机自动生成的
2、其中 与 的数量也是没法固定的,也是随机自动生成的
** 这里是不固定的字符串1 **
** 这里是不固定的字符串2 **
** 这里是不固定的字符串3 **
有朋友给出这样的正则“(?
逆序否定环视,表示所在位置左侧不能匹配Expression
对于逆序肯定环视(?目前支持逆序环视的语言还比较少,比如当前比较流行的脚本语言JavaScript中就是不支持逆序环视的。个人认为不支持逆序环视已成为目前JavaScript中使用正则的最大限制,一些使用逆序环视很轻松搞定的输入验证,却要通过各种变通的方式来实现。
需求:验证输入由字母、数字和下划线组成,下划线不能出现在开始或结束位置。
对于这样的需求,如果支持逆序环视,直接“^(?!_)[a-zA-Z0-9_]+(?
而另一些流行的语言,比如Java中,虽然支持逆序环视,但只支持固定长度的子表达式,量词也只支持“?”,其它不定长度的量词如“*”、“+” 、“{m,n}”等是不支持的。
源字符串:
a test
需求:取得div标签的内容,不包括div标签本身
Java代码实现:
代码如下:
import java.util.regex.*;
String test = "
a test
"; String reg = "(?