Как я могу использовать регулярное выражение, чтобы поместить начало строки, предшествующей некоторому заданному пользователем символу, в группу? - PullRequest
0 голосов
/ 25 октября 2019

Этот вопрос был задан здесь , но я не хочу конкретного решения для Python. Он должен работать в JavaScript и любом другом основном языке. Это должно быть регулярное выражение.

Предположим, что разделитель был "!"

В таблице ниже показано желаемое поведение для нескольких примеров ввода

+------------------------+--------+
|         INPUT          | OUTPUT |
+------------------------+--------+
| "aaaa!bbbb"            | "aaaa" |
| "aaaa"                 | "aaaa" |
| "aaaa!bbbb!ccccc!dddd" | "aaaa" |
| "aaaa!"                | "aaaa" |
| "!aaaaa"               | ""     |
+------------------------+--------+    

Я попробовал следующее безрезультатно:

"^[^!]*$(!)"

Ответы [ 2 ]

6 голосов
/ 25 октября 2019

Вам не нужно (!) в конце. Просто используйте ^([^!]*).

0 голосов
/ 25 октября 2019

Вы можете использовать группу захвата для части до (но не включая) ! и заменить совпадение первой группой:

^([^!]+)($|!.*$)

Regex 101 demo

...