我如何使用正则表达式将字符串的开头(位于某个用户指定的字符之前)放入组中?
How do I use a regular expression to put the beginning of a string, preceding some user-specified character, into a group?
有人问过这个问题 here,但我不想要 python 特定的解决方案。它应该可以在 JavaScript 和任何其他主流语言中使用。必须是正则表达式。
假设分隔符是“!
”
下面的 table 显示了几个样本输入的预期行为
+------------------------+--------+
| INPUT | OUTPUT |
+------------------------+--------+
| "aaaa!bbbb" | "aaaa" |
| "aaaa" | "aaaa" |
| "aaaa!bbbb!ccccc!dddd" | "aaaa" |
| "aaaa!" | "aaaa" |
| "!aaaaa" | "" |
+------------------------+--------+
我尝试了以下方法但无济于事:
"^[^!]*$(!)
"
最后不需要 (!)
。只需使用 ^([^!]*)
.
您可以对 !
之前的部分使用捕获组,并将匹配项替换为第一组:
^([^!]+)($|!.*$)
有人问过这个问题 here,但我不想要 python 特定的解决方案。它应该可以在 JavaScript 和任何其他主流语言中使用。必须是正则表达式。
假设分隔符是“!
”
下面的 table 显示了几个样本输入的预期行为
+------------------------+--------+
| INPUT | OUTPUT |
+------------------------+--------+
| "aaaa!bbbb" | "aaaa" |
| "aaaa" | "aaaa" |
| "aaaa!bbbb!ccccc!dddd" | "aaaa" |
| "aaaa!" | "aaaa" |
| "!aaaaa" | "" |
+------------------------+--------+
我尝试了以下方法但无济于事:
"^[^!]*$(!)
"
最后不需要 (!)
。只需使用 ^([^!]*)
.
您可以对 !
之前的部分使用捕获组,并将匹配项替换为第一组:
^([^!]+)($|!.*$)