正则表达式逗号不表达

     2023-04-14     135

关键词:

【中文标题】正则表达式逗号不表达【英文标题】:Regex commas out of expression 【发布时间】:2013-09-24 17:59:30 【问题描述】:

我正在尝试用正则表达式替换字符串中引号之间的所有逗号。我似乎无法让它以非贪婪的方式匹配它们,所以它不会只是正则表达式整行。我正在尝试的文本和正则表达式如下。使用我正在尝试的正则表达式,它正在拾取每个元素之间的逗号。 EX "remove,comma","nocomma" 产生 "remove,comma" 和 "," 匹配。此外,它正在从“nocomma”、“nocomma”中选择“nocomma”、“nocomma”等匹配项。

我先进行匹配,然后缩小范围以替换逗号。

使用 .NET 4.0

正则表达式之前的文本

"remove,comma","re​​move,comma","nocomma","re​​move,comma","re​​move,all,commas,here,too","also,remove,commas"

正则表达式之前我想要的文本

"removecomma","re​​movecomma","nocomma","re​​movecomma","re​​moveallcommasheretoo","alsoremovecommas"

正则表达式

\".*?(,).*?\"

【问题讨论】:

【参考方案1】:
Regex.Replace(input,@",(?!([^""]*""[^""]*"")*[^""]*$)","");

上面的正则表达式将替换,,前提是它们前面的" 是奇数。这是因为"" 中的, 前面有" 的奇数。

[^"]* 将匹配 0 到许多不是 " 的字符

$ 描述字符串的结尾

(?!) 是负前瞻

【讨论】:

这会删除所有逗号,包括我不想删除的逗号。我已经在上面更新了我希望决赛的样子。 我看到了您添加的解释,但是当我在 myregextester 中运行它时,它会删除所有逗号,包括我需要保留的逗号。 @steventnorris 在 Visual Studio not 测试器中运行它。这在其他测试器中不起作用,因为它会尝试重新转义 " 效果很好。我没有兑现 " 字符的逃逸。现在效果很好,我很欣赏这个解释。巧妙地使用奇数个引号。【参考方案2】:

这个怎么样:-

Regex.Replace(input,@",(?![^""]*""(?:[^""]*""[^""]*"")*[^""]*$)",String.Empty);

或者试试这个:-

string pattern = @"""[^""]*""";
data = Regex.Replace(data, pattern, m => m.Value.Replace(",", ""),
    RegexOptions.IgnorePatternWhitespace);

【讨论】:

我在 myregextester.com 中尝试过此操作,但没有产生任何匹配项。 @steventnorris:- 更新了我的答案。请立即尝试!!1 更接近,但这会删除所有逗号,包括我想要保留的逗号。

Javascript split() 正则表达式在 Chrome 中返回不需要的逗号

】Javascriptsplit()正则表达式在Chrome中返回不需要的逗号【英文标题】:Javascriptsplit()RegexexpressionreturnsunwantedcommainChrome【发布时间】:2013-11-1112:24:08【问题描述】:我写了一个简单的正则表达式来确定文本框是否只填充数字。documen... 查看详情

Python 正则表达式,包括逗号和点

】Python正则表达式,包括逗号和点【英文标题】:PythonRegexincludingCommaandDot【发布时间】:2021-10-0523:07:54【问题描述】:我正在尝试从列中提取项目的物理尺寸,目前我的正则表达式工作正常。我得到了帮助here现在唯一的问题是... 查看详情

使用正则表达式批量去除第一个逗号前的内容(含逗号)以及去除最后一个逗号后面的内容

使用正则表达式批量去除第一个逗号前的内容(含逗号)以及去除最后一个逗号后面的内容1、使用正则表达式批量去除第一个逗号前的内容(含逗号)包含第一个逗号^[^,]*(?=,),不包含第一个逗号^[^,]*(?=,)2、去除最后一个逗号前... 查看详情

用正则表达式匹配数字——只有数字和逗号

】用正则表达式匹配数字——只有数字和逗号【英文标题】:Matchingnumberswithregularexpressions—onlydigitsandcommas【发布时间】:2011-05-1320:43:21【问题描述】:我不知道如何为示例值构建正则表达式:123,456,789-12,341234-8你能帮帮我吗?... 查看详情

如何使用正则表达式过滤掉任何没有逗号的东西?

】如何使用正则表达式过滤掉任何没有逗号的东西?【英文标题】:HowtouseRegexToFilterOutAnythingThatDoesNotHaveAComma?【发布时间】:2021-03-2401:36:22【问题描述】:所以我使用了不和谐的机器人,我想制作一个正则表达式,它可以删除任... 查看详情

如何在 R 中使用正则表达式查找不带逗号的潜文本?

】如何在R中使用正则表达式查找不带逗号的潜文本?【英文标题】:HowdoIfindasubtextwithoutcommausingregexinR?【发布时间】:2017-03-0706:37:19【问题描述】:我有一个数据框:result<-c(\'Ab1:256ug/mL(R),Ab2(disk);18mm(S)\',\'Ab1:4ug/mL(S),Ab2(disk);<... 查看详情

如何通过 Oracle 中的正则表达式从逗号分隔列表中删除重复项,但我不想要重复值? [复制]

】如何通过Oracle中的正则表达式从逗号分隔列表中删除重复项,但我不想要重复值?[复制]【英文标题】:HowtoremoveduplicatesfromcommaseparatedlistbyregexinOraclebutIdon\'twantduplicatesvalues?[duplicate]【发布时间】:2018-08-0703:08:33【问题描述】:... 查看详情

如何使用正则表达式从字符串中删除字符串和特殊字符并仅显示不带逗号的数字?

】如何使用正则表达式从字符串中删除字符串和特殊字符并仅显示不带逗号的数字?【英文标题】:Howtoremovestringsandspecialcharactersfromstringandshowonlynumberswithoutcommausingregex?【发布时间】:2021-03-2218:58:45【问题描述】:在我使用reactna... 查看详情

用记事本++中的正则表达式替换引号中的所有逗号

】用记事本++中的正则表达式替换引号中的所有逗号【英文标题】:replaceallcommasinquoteswithregexinnotepad++【发布时间】:2016-12-0617:31:54【问题描述】:我正在尝试替换notepad++中引号之间的字符串中的所有逗号。我几乎用regextoremovecomm... 查看详情

正则表达式匹配逗号不在分组符号之间

】正则表达式匹配逗号不在分组符号之间【英文标题】:Regextomatchcommanotbetweengroupingsymbols【发布时间】:2011-09-0205:44:14【问题描述】:我需要一个正则表达式来匹配不在“[”和“]”或“(”和“)”或“”和“”之间的逗号。其... 查看详情

优化逗号分隔值正则表达式

】优化逗号分隔值正则表达式【英文标题】:OptimizeCommaSeparatedValuesRegularExpression【发布时间】:2013-12-2805:49:52【问题描述】:我正在创建一个逗号分隔值的字符串数组。我需要用逗号分隔行,但不是引号内的逗号,因为这可能是... 查看详情

教你notepad++用正则表达式替换掉各行逗号前面内容

...、在notepad++里面crtl+h打开替换窗口,查找模式选择:正则表达式(E)2、在查找目标中输入正则表达式测试,可以先不替换直接查找看结果比较快。本人经过多次测试终于成功了,这里的正则表达式和代码里面用的有些不太一样,... 查看详情

信用卡用逗号分隔 - 正则表达式 - Javascript

】信用卡用逗号分隔-正则表达式-Javascript【英文标题】:CreditCardseparatedbycomman-Regex-Javascript【发布时间】:2017-12-1015:54:25【问题描述】:我的文本字段接受用逗号(,)分隔的信用卡号我正在使用的当前正则表达式是:/(\\d16)(?:,|... 查看详情

C# 正则表达式在 外用逗号分隔

】C#正则表达式在外用逗号分隔【英文标题】:C#RegexsplitbycommaoutsidetheC#正则表达式在外用逗号分隔【发布时间】:2021-01-0222:15:52【问题描述】:我对RegEx的熟悉程度不如我应该熟悉的程度。但是,我正在寻找与值的变体匹配的表... 查看详情

数字和逗号的正则表达式

】数字和逗号的正则表达式【英文标题】:regexpfordigitsANDcommas【发布时间】:2018-03-2322:22:26【问题描述】:这应该比我想象的要容易得多,但是我已经尝试了三个小时,但什么也没有,所以这里......我有一个varchar2(6)列,所以它... 查看详情

如何使用正则表达式获取特定字符之后的所有字符,例如逗号 (",")

】如何使用正则表达式获取特定字符之后的所有字符,例如逗号(",")【英文标题】:HowcanIuseregextogetallthecharactersafteraspecificcharacter,e.g.comma(",")【发布时间】:2011-05-0219:35:15【问题描述】:需要一个正则表达式来从变... 查看详情

匹配逗号 - 正则表达式

】匹配逗号-正则表达式【英文标题】:Matchuptothecomma-Regex【发布时间】:2021-07-3116:19:02【问题描述】:我创建了一个正则表达式模式(?&lt;=[TCC|TCC_BHPB]\\s\\d3,4)[-_\\s]\\d1,2[,]这个模式匹配只是:TCC6005_5,我应该改变什么来匹配这两... 查看详情

正则表达式查找第 n 个逗号并删除逗号以及值

】正则表达式查找第n个逗号并删除逗号以及值【英文标题】:Regextofindthenthcommaandremovethecommaaswellasthevalue【发布时间】:2022-01-1313:21:42【问题描述】:尝试删除第三个逗号和逗号之后的值a,b,c,d,e,fg,h,i,asj,k,l如何编写正则表达式来... 查看详情