Регулярное выражение, чтобы соответствовать определенным символам и исключать определенные символы, но без отрицательного взгляда - PullRequest
3 голосов
/ 06 октября 2019

Я хочу регулярное выражение, которое соответствует всем смайликам (или большинству из них), но исключает определенные символы (например, “|”|‘|’|…|—).

Это регулярное выражение выполняет работу через отрицательный взгляд:

/(?!\u201C|\u201D|\u2018|\u2019|\u2026|\u2014)(\u00a9|\u00ae|[\u2000-\u3300]|\ud83c[\ud000-\udfff]|\ud83d[\ud000-\udfff]|\ud83e[\ud000-\udfff])/

Но, очевидно, Google Scripts не поддерживает это. Ошибка:

Недопустимый шаблон регулярного выражения (?! «|» | '|' |… | -) (© | ® | [-㌀] |? [퀀 -?] |? [퀀-?] |? [퀀 -?])

Есть ли другой способ достичь моей цели (регулярное выражение, работающее с Google Script's findText)?

1 Ответ

1 голос
/ 06 октября 2019

Опция 1

Может быть,

[\ u {1f300} - \ u {1f5ff} \ u {1f900} - \ u {1f9ff} \ u {1f600}- \ и {1f64f} \ и {1f680} - \ и {1f6ff} \ и {2600} - \ и {26ff} \ и {2700} - \ и {27bf} \ и {1f1e6} - \ и {1f1ff}\ и {1f191} - \ и {1f251} \ и {1f004} \ и {1f0cf} \ и {1f170} - \ и {1f171} \ и {1f17e} - \ и {1f17f} \ и {1f18e} \ и{3030} \ и {2B50} \ и {2b55} \ и {2934} - \ и {2935} \ и {2b05} - \ и {2b07} \ и {2b1b} - \ и {2b1c} \ и {3297} \ и {3299} \ и {303d} \ и {00a9} \ и {00ae} \ и {2122} \ и {23f3} \ и {24c2} \ и {23e9} - \ и {23ef} \ и {25b6} \ u {23f8} - \ u {23fa}]

может работать нормально для ваших желаемых смайликов.

Демонстрация

Опция 2

В противном случае вы можете отменить эти нежелательные символы, используя классы символов, такие как:

[these unicode ranges &&[^these unicodes]]

, который станет довольно сложным, но все же возможным.

Опция 3

Используя эту опцию, вы, скорее всего, сможете решить свою проблему гораздо проще. Я полагаю, ваша проблема в том, что эти нежелательные знаки препинания уже входят в число желаемых юникодов. Проверьте, так ли это. Например, в

[\u100-\u200]

вы можете иметь \u150 и \u175 как нежелательные символы, которые вы хотите, чтобы они были удалены из желаемых диапазонов юникодов, которые у вас уже есть.

Затем вы можете просто удалить их из диапазона, например, с помощью:

[\u100-\u149\u151-\u174\u176-\u200]

, и настолько просто, что проблема будет решена.

Источник

регулярные выражения смайликов javascript unicode

...