正则表达式匹配非空格字符
Regex matching non space character
我正在尝试使用JavaScript和正则表达式从netscape格式的cookie文件中提取cookie。使用的正则表达式适用于 php 和 python,但由于某种原因它不适用于 JavaScript。它不返回任何匹配项。当我使用 [^''s] 代替 [''S] 时,它会给出匹配项,但它会删除字符"s",这不是最佳的......无论如何,这是代码和测试字符串,让我知道它是否明显。
function readCookies(){
fs.readFile(myArgs[0], 'utf8', function (err,data) {
if (err) {
return console.log(err);
}
console.log(data);
var rx = new RegExp("('S*?)'t('S*?)'t('S*?)'t('S*?)'t('S*?)'t('S*?)'t('S+)", "g");
var matches = new Array();
var name = true;
while((match = rx.exec(data)) !== null){
console.log(String(match[1]).trim())
}
});
}
测试字符串:
# Netscape HTTP Cookie File
# http://curl.haxx.se/docs/http-cookies.html
# This file was generated by libcurl! Edit at your own risk.
sffd.com FALSE / FALSE 1418953710 proimg 709c76
sffd.com FALSE / FALSE 1418953710 proimg1 709c76
.sffd.com FALSE / FALSE 1418953710 proimg2 709c76
问题是你没有转义正则表达式字符串中的反斜杠。另一种方法是使用 RegExp 文字语法:
var rx = /('S*?)'t('S*?)'t('S*?)'t('S*?)'t('S*?)'t('S*?)'t('S+)/g;
同样在一个不相关的说明中,据我所知,您正在将match
介绍为全局。因此,您可能希望在 while 循环之前添加var match;
。
相关文章:
- 仅当后面跟着字母表时才允许使用空格字符的验证
- 从 JavaScript 字符串中删除零宽度空格字符
- 正则表达式匹配非空格字符
- JSON 数据后出现意外的非空格字符
- JavaScript中(字符空间字符)或(空格字符空格)的表达式是什么
- /(S)1(1)+/g 匹配三个相等的非空格字符紧随其后的所有匹配项
- Javascript RegExp:如何检测空格字符
- 在预标记中显示空格字符
- 检查数组中的字符串在javascript/jquery中是否有空格字符
- JavaScript初学者:在函数中编码单独的空格字符有什么功能区别
- 在javascript和crossfilter中使用空格字符
- 获取第一个空格字符和'='性格
- 在JavaScript中,当使用Regex时,如何在不使用空格字符ORs的情况下匹配空格
- 使用jQuery将cookie值替换为空格字符
- Javascript regex:查找一个没有后跟空格字符的单词
- Regex检查重复的空格字符
- 如何检查输入是否只包含空格字符?即只有一个或多个空格,而没有其他字符
- 替换unicode空格字符
- 在regex - Javascript中,在匹配空格字符之前先匹配字母
- 我如何添加空格字符的文本在jquery追加