不完全是一个正则表达式的天才在这里,但到目前为止,我有这样的:(?>^)"|^(?!"$)
这(?>^)"(?<$)"
但是它只是在第一个正则表达式中捕获了第一个双引号,后者则抛出错误。
这是一个简短的示例多行字符串:
8433|NTC Nano Tech Coatings GmbH|Marpinger Weg 2|||Tholey||D-66636|DE|1|EUR|
"8434|Piramal Enterprises Ltd,|Plot No: 18, ""PHARMEZ"",|Pharma Special Economic|Zone,Sarkhej-Bawla NH #8AVilla|Ahmedabad||382213|IN|20|USD|"
"8435|PolyDrop, LLC|22431 76th AVE S|||Kent|WA|98032|US|7|USD|"
我需要一种通过正则表达式解析此方法的方法,以删除每行的第一个“和最后一个”,但不要触摸行内的任何其他双引号。仅当它们是一行的第一个和最后一个字符时,才用空字符串替换它们。
有人能帮我一下吗?似乎我在尝试获取一行的最后一个字符的最后一个双引号时做错了。
要匹配占第一个和最后一个引号之前的任何空格的行上的第一个和最后一个双引号,可以使用
(?m)^\h*\K"|"(?=\h*$)
请参阅regex演示。
细节
(?m)
-多行选项制作^
并$
匹配行的开始和结束^
-一行的开始\h*
-0+水平空白\K
-match reset运算符,它忽略了与内存缓冲区相距甚远的文本匹配"
-双引号|
- 要么"
-双引号...(?=\h*$)
-(正向超前,非消耗型)后跟0+水平空白和行尾。本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句