我有以下格式的字符串:
University/Class (Term)
我需要将它分成三个部分。我想出了 /\/|\s\(|\)/g
并且它对于简单的情况非常有效。不幸的是,这三个部分中的每一个都可以包含这三个定界符。例如:
University of StackOverflow (online)/Intro to asking questions (Fall2014)
最好的解决方案(我知道这并不完美)似乎是编写一个正则表达式,首先查找 \/
,然后是 \s\(
,然后最后是\)
,按照这个顺序。我找到了一些似乎暗示答案的答案,但在我的案例中,我被字符和字符串定界符的混合所抛弃。
我肯定仍在努力理解一般的正则表达式,所以我非常感谢一个解释清楚的解决方案。谢谢!
最佳答案
\/|\s\((?!.*\/)|\)(?!.*(?:\/|\s\())
试试这个。按这个拆分。看演示。
https://regex101.com/r/eZ0yP4/25
或者如果你愿意使用组,你可以试试这个 cn 捕获所有 ghe 组
(.*)\/(.*)\s\(([^\)]+)
查看演示。
关于ruby - 使用有序分隔符使用正则表达式解析字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27519582/