![](/img/trans.png)
[英]RegEx to split string using space when not surrounded by quotes works in refiddle but not in C#
[英]C# Regex for a word possibly surrounded by quotes
对于我正在编写的C#程序,我使用正则表达式来查找特定模式,这个模式可能会或可能不会被括号括起来,但是,如果是,我想将它们包含在匹配中。
例如,假设我的模式只是单词"hello"
,我创建了这个正则表达式:
"\(?hello\)?"
但是,这并没有考虑到这个词必须有两个开括号和右括号才能符合条件。 因此,例如,如果我的搜索字符串是:
hello, (hello), (hello, my name is bob), (bob said hello)
我想要的是拥有以下4场比赛 - hello
, (hello)
hello
, hello
具体来说,第二个匹配包括括号,但第3和第4个匹配不包括任何括号,因为它们不在“hello”的开头和结尾。
我可以使用什么样的正则表达式来实现这一目标?
在其他人花费太多时间之前,我确实找到了答案(但如果你有更好的方法,请分享!)
经过一番研究,我的最终模式已成为:
(\()?hello(?(1)\))
它使用可选的捕获组和条件反向引用
再说一次,如果有人有更好的解决方案,请分享,但是,否则,希望这可以帮助将来的其他人!
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.