正则表达式相关

双反斜杠引发的正则表达式错误

今天写js所填数据的校验时,遇到了以下的错误。特此记录

Uncaught SyntaxError: Invalid regular expression: /^(+?d+)(.d+)?$/: Nothing to repeat

 

源码:

var reg = new RegExp('^(\+?\d+)(\.\d+)?$');

 

乍得一看,好像没有什么错误。但是细心就会发现。抛出异常哪里的正则表达式有点错误,少了反斜杠。原因是我们没有加上双反斜杠而导致的错误。

正确代码:

var reg = new RegExp('^(\\+?\\d+)(\\.\\d+)?$');

 

感想:要细心查看抛出的错误

 

参考:http://zengxiangzhen.blog.51cto.com/9237594/1546944,感谢原博主。

 

正则表达式:

a= 其特征在于,(.+?)[。,]   

解释: ".+?" 是一个正则表达式,它可以匹配任意一个或多个字符(除了换行符),直到第一次出现下一个模式所在的位置。这里的 . 表示匹配任意字符(除了换行符),而 + 表示匹配前面的字符一次或多次,并且是贪婪模式(尽可能多地匹配字符)。最后的 ? 表示将贪婪模式转换成非贪婪模式(尽可能少地匹配字符)。

解释: 这里的下一个模式即为[。,]    其特征在于,开始, 直到首次遇到。,为止。

b= 其特征在于,(.+?)

解释:  ".+?" 是一个正则表达式,它可以匹配任意一个或多个字符(除了换行符),直到第一次出现下一个模式所在的位置。 这里没有下一个模式, 那么.+ 表示匹配人一个字符(除了换行符), 即停止。

 

参考文章

python 正则表达式原始字符串:https://blog.csdn.net/weixin_35934226/article/details/112937910

已转义字符串 --- 字符串-- 正则表达式

 

下面给出两个例子:

匹配双引号内的内容 给一段java的示例代码

 

以下是匹配双引号内的内容的正则表达式:

"(.*?)"
这个正则表达式与上面 Python 的示例相同,可以匹配双引号 " 内的任意字符串,并使用非贪婪模式(*?)来确保匹配最少量的字符。

以下是一个 Java 示例代码,用于演示如何使用正则表达式匹配双引号内的内容:

java
import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class RegexExample {
    public static void main(String[] args) {
        String myString = "She said, \"Hello!\" and then \"Goodbye!\"";
        Pattern pattern = Pattern.compile("\"(.*?)\"");
        Matcher matcher = pattern.matcher(myString);

        while (matcher.find()) {
            System.out.println(matcher.group(1));
        }
    }
}
在上面的代码中,我们使用 java.util.regex 包中的 Pattern 和 Matcher 类来编译和执行正则表达式。我们首先使用 Pattern.compile() 方法将正则表达式编译为一个模式,然后使用 Matcher 类的 find() 方法查找匹配项。每次找到匹配项时,我们使用 group(1) 方法获取第一个捕获组的内容,即双引号内的字符串。最终输出结果将是:

Hello!
Goodbye!
这段代码可以作为学习 Java 正则表达式的入门示例。

 

 

 python正则:

以下是匹配双引号内的内容的正则表达式:

"(.*?)"
该正则表达式使用了非贪婪模式(*?),可以匹配最少量的字符。这个模式与贪心模式(*)不同,它会尽可能少地匹配字符。

例如,如果要从以下字符串中匹配所有双引号内的内容:

my_string = 'She said, "Hello!" and then "Goodbye!"'
可以使用以下代码:

python
import re

matches = re.findall(r'"(.*?)"', my_string)

print(matches)
# Output: ['Hello!', 'Goodbye!']
在上面的代码中,我们使用了 re.findall() 函数来查找所有符合正则表达式的字符串。匹配的结果是一个列表,其中包含了两个双引号内的内容。

 

posted @ 2016-03-21 10:56  知行-zhixing  阅读(1211)  评论(0编辑  收藏  举报