相关疑难解决方法(0)

使用正则表达式验证CSV中的项目

我有一个CSV字符串,我试图通过正则表达式验证,以确保它只有N个项目.我尝试了以下模式(寻找2项):

/([^,]+){2}/
Run Code Online (Sandbox Code Playgroud)

但它似乎不起作用,我猜测因为内在模式不够贪婪.

有任何想法吗?理想情况下,它应该适用于PHP和Javscript正则表达式引擎.

更新:

由于技术原因,我真的想通过正则表达而不是另一种解决方案来做到这一点.未引用CSV且值不包含逗号,因此这不是问题.

/([^,]*[,]{1}[^,]*){1}/
Run Code Online (Sandbox Code Playgroud)

我现在在哪里,哪种工作但仍然有点难看,并且有一个项目匹配的问题.

CSV看起来像:

apples,bananas,pears,oranges,grapefruit
Run Code Online (Sandbox Code Playgroud)

javascript php regex csv

4
推荐指数
1
解决办法
1675
查看次数

在不带引号的逗号上拆分字符串的Javascript方法

你会认为这个问题之前已被问过,但我找不到它.

我需要用未引用的逗号分隔js字符串.我只使用双引号,这样可以使它更简单一些.

我尝试了两种方法但没有钉它.

我需要转这个:

'body.loaded"who, are , you" div"hello ,"#div-id span CODE, body.loaded span"span, text" code'
Run Code Online (Sandbox Code Playgroud)

进入这个:

[
 'body.loaded"who, are , you" div"hello ,"#div-id span CODE',
 'body.loaded span"span, text" code'
]
Run Code Online (Sandbox Code Playgroud)

1) - >匹配好的部分,这些部分主要起作用,但在我的结果中给了我很多空字符串.

'body.loaded"who, are , you" div"hello ,"#div-id span CODE, body.loaded span"span, text" code'.match(
  /([^,]*"[^"]*")*/g
)

['body.loaded"who, are , you" div"hello' ,'', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', ' body.loaded span"span, text"', '', '', '', '', …
Run Code Online (Sandbox Code Playgroud)

javascript regex string split

2
推荐指数
1
解决办法
1853
查看次数

如何迭代 javascript 行分隔字符串,检查分号分隔的第一个值,并连接值相等的行?

我有一个用作数据源的 CSV。我需要将换行符 ('\n') 上的行拆分为一个名为 'lines' 的变量,我需要将每行中以分号 (';') 分隔的值拆分为一个名为 'items' 的变量.

我希望能够检查一行上的第一个值,如果它等于输入框中的输入值,我想将此行(在值之间使用分号分隔符)添加到名为 newData 的新变量中。如果它不等于输入框中的值,我想排除它。

我基本上想过滤掉第一个值不等于我正在搜索的值的每一行。

以下是数据示例(假设每行后有一个换行符 ('\n')):

"ID";"Date";"Time";"Status"
"1";"2013.01.01";"10:03 AM";"Active"
"1";"2013.01.05";"07:45 AM";"Active"
"2";"2013.01.03";"9:12 PM";"Active"
"2";"2013.01.11";"6:37 AM";"Inactive"
"1";"2013.01.22";"12:57 PM";"Inactive"
Run Code Online (Sandbox Code Playgroud)

我可以拆分第一个标题行,并且不会包含在我正在寻找的结果中。如果我的搜索在 ID 列上并且搜索值为 1,我只想返回 ID 等于 1 的行并希望它匹配上面的格式(无标题行)。相反,如果搜索值为 7,我将只返回无行或仅返回标题行。

到目前为止,我所能做的就是从我正在导入的数据中拆分行(我找到了所有这些代码,我真的不太熟悉 javascript 或 jQuery):

$.get("myFile.csv", function(data) {
    data = data.replace(/"/g, "");

    var lines = data.split('\n');

    var first = lines.shift().split(';');
});

// HTML Input Box
<input id="search_box" type="text">
<button id="btn_search">Search</button>
Run Code Online (Sandbox Code Playgroud)

谢谢。

javascript csv arrays jquery delimiter

2
推荐指数
2
解决办法
1万
查看次数

当逗号和引号可能在字段中时,从 CSV 转换为 JSON 的最佳方法是什么?

我希望能够将 CSV 转换为 JSON。csv 以这样的自由文本形式出现(带有换行符):

name,age,booktitle
John,2,Hello World
Mary,3,""Alas, What Can I do?""
Joseph,5,"Waiting, waiting, waiting"
Run Code Online (Sandbox Code Playgroud)

正如你所知道的,我的问题是文件...

  • 在某些字段中有一些内部逗号,尽管它们至少包含在一个双引号中。
  • 文件中可能有双引号。

我希望输出的每个字段都没有任何前导和尾随引号...如何正确创建从准确表示此 CSV 的 csv 字符串解析出的 JSON 对象?(没有前导和尾随引号)。

我通常使用:

var mycsvstring;
var finalconvertedjson = {};
var headerfields = // get headers here
var lines = mycsvstring.split('\n');


for(var i = 0; i < lines.length; i++) {
// loop through each line and set a key for each header field that corresponds to the appropriate lines[i]    
}
Run Code Online (Sandbox Code Playgroud)

javascript

2
推荐指数
1
解决办法
3109
查看次数

如何在Javascript中对字符串进行标记?

我有一个字符串:

'"Apples" AND "Bananas" OR "Gala Melon"'
Run Code Online (Sandbox Code Playgroud)

我想将其转换为数组

arr = ['"Apples"', 'AND', '"Bananas"', 'OR', '"Gala Melon"']
Run Code Online (Sandbox Code Playgroud)

我不知道我是否可以用正则表达式来做.我开始认为我可能必须一次解析每个字符以匹配双引号.

javascript arrays string

1
推荐指数
1
解决办法
123
查看次数

没有子串的javascript拆分

我有一个看起来像这样的字符串

"a,b,c,"Mozilla/5.0,(compatible;,MSIE,9.0;,Windows,NT,6.1;,Trident/5.0)",d,e"
Run Code Online (Sandbox Code Playgroud)

我试图用","拆分这个字符串,并获取个别值.现在,它的作用是,它分割部分"Mozilla/5.0,(兼容;,MSIE,9.0;,Windows,NT,6.1;,Trident/5.0)",我也得到了这个作为最终结果

["a", "b", "c", ""Mozilla/5.0", "(compatible;", "MSIE", "9.0;", "Windows", "NT", "6.1;", "Trident/5.0)"", "d", "e"]
Run Code Online (Sandbox Code Playgroud)

有没有办法让它不拆分子串?基本上我试图在拆分后得到这个

["a", "b", "c", "Mozilla/5.0,(compatible;,MSIE,9.0;,Windows,NT,6.1;,Trident/5.0)", "d", "e"]
Run Code Online (Sandbox Code Playgroud)

javascript split

1
推荐指数
1
解决办法
45
查看次数

用于解析CSV的正则表达式

我正在尝试编写一个可以从CSV文件中提取单个字段的正则表达式.

例如,如果在CSV文件中给出以下行:

123,    Bob    ,Bob, " Foo Bar ", "a, ""b"", c"
Run Code Online (Sandbox Code Playgroud)

应该给下面的结果(引号):

'123'
'Bob'
'Bob'
' Foo Bar '
'a, "b", c'
Run Code Online (Sandbox Code Playgroud)

请注意,除非它们在引号内,否则应修剪前导和尾随空格.

我并不担心无效的CSV行,例如没有匹配收盘价的开盘价.根据上述规则,您可以放心地假设CSV文件完全有效.

如果单个Regex有困难,我也可以使用多个正则表达式.但我喜欢避免使用标准的C#操作,除非它们简单而简短.(我不想最终编写大量代码.)

那么,有什么建议吗?

c# regex csv

0
推荐指数
1
解决办法
946
查看次数

通过多个分隔符拆分字符串并忽略引号javascript中的分隔符

我正在尝试编写正则表达式将字符串拆分为数组.它必须使用空格或逗号的分隔符进行拆分,并忽略引用短语内的分隔符(使用单引号或双引号).

到目前为止,我能够通过空格和逗号分隔它,但是我无法让它在引号之间忽略它们而我已经丢失了.

var pattern = /\b\w+[^"', ]+(?!'")/g,
    text = "Hello world \"Boston Red Sox\" hello, world, \'boston, red sox\', \'beached whale\', pickup sticks",
    output = text.match(pattern);
Run Code Online (Sandbox Code Playgroud)

当前输出:

["Hello", "world", "Boston", "Red", "Sox", "hello", "world", "boston", "red", "sox", "beached", "whale", "pickup", "sticks"] 
Run Code Online (Sandbox Code Playgroud)

期望的输出:

["Hello", "world", "Boston Red Sox", "hello", "world", "boston, red sox", "beached whale", "pickup", "sticks"]
Run Code Online (Sandbox Code Playgroud)

任何帮助都会很棒!

javascript regex string

0
推荐指数
1
解决办法
888
查看次数

标签 统计

javascript ×7

regex ×4

csv ×3

string ×3

arrays ×2

split ×2

c# ×1

delimiter ×1

jquery ×1

php ×1