这个正则表达式之间的区别是可替换的吗?
((?:[^\"])*)
([^\"]*)
Run Code Online (Sandbox Code Playgroud)
这个问题的背景:
javascript WYSIWYG编辑器(tinymce)无法在Firefox(23.0.1和25.0a2)中解析我的html代码,但在Chrome中工作.
我发现正则表达式应该归咎于:
attrRegExp = /([\w:\-]+)(?:\s*=\s*(?:(?:\"((?:[^\"])*)\")|(?:\'((?:[^\'])*)\')|([^>\s]+)))?/g;
Run Code Online (Sandbox Code Playgroud)
我修改了,替换
((?:[^\"])*)
Run Code Online (Sandbox Code Playgroud)
同
([^\"]*)
Run Code Online (Sandbox Code Playgroud)
和
((?:[^\'])*)
Run Code Online (Sandbox Code Playgroud)
同
([^\']*)
Run Code Online (Sandbox Code Playgroud)
生成的正则表达式在我的测试用例的两个浏览器中都有效
attrRegExp = /([\w:\-]+)(?:\s*=\s*(?:(?:\"([^\"]*)\")|(?:\'([^\']*)\')|([^>\s]+)))?/g
Run Code Online (Sandbox Code Playgroud)
谁可以对此有所了解?
我的测试数据仅适用于修改过的正则表达式,是一个大图像> 700 kb,如:
var testdata = '<img alt="" src="data:image/jpeg;base64,/9j/4AAQSkZJRgA...5PmDk4FOGOHy6S3JW120W1uCJ5M0PBa54edOFAc8ePX/2Q==">'
Run Code Online (Sandbox Code Playgroud)
做类似的测试:
testdata.match(attrRegExp);
Run Code Online (Sandbox Code Playgroud)
特别是当测试数据很大时,未经修改的正则表达式很可能在firefox中失败.
你可以在这里找到jsfiddle示例:
考虑这两个脚本:
第一名: " ".match(/(\s)/)
和
第二: " ".match(/\s/)
结果
第一名: [" "," "]
第二: [" "]
我不明白这种行为.据我所知,捕获组/ paranthesis的目的是要在后面的regex中再次引用一段匹配.但显然并非全部.或者此特定于匹配和拆分方法的行为.
大家好,我试图在句子中保持昏迷之前出现这个词。
例如,如果字符串是:
"Cloudy, and 51 ° F "
Run Code Online (Sandbox Code Playgroud)
我想要输出CLOUDY。
如何在regex和javascript中完成?我知道您必须在javascript中使用.match命令。谢谢,希望能提供任何帮助。
我有一个json响应来自一个有点痛苦的服务.我怎样才能将这个结构扁平化,以便 "not_restricted":{"doc_count": 976465}改为"not_restricted":976465?我会使用一个函数来检测所有类型的json文档中的这种结构并修改结果.
这是json的一般结构:
{
"took": 159,
"timed_out": false,
"_shards": {
"total": 6,
"successful": 6,
"failed": 0
},
"hits": {
"total": 4909332,
"max_score": 1,
"hits": [
{
...
},
{
...
},
{
...
}
]
},
"aggregations": {
"index_types": {
"doc_count_error_upper_bound": 0,
"sum_other_doc_count": 0,
"buckets": [
{
"key": "client",
"doc_count": 1958205,
"not_restricted": {
"doc_count": 976465
},
"restricted": {
"doc_count": 981740
}
},
{
"key": "ultimateparent",
"doc_count": 1616164,
"not_restricted": {
"doc_count": 741059
},
"restricted": {
"doc_count": 875105 …Run Code Online (Sandbox Code Playgroud)