Как я могу сделать регулярное выражение с утверждением lookbehind, которое все еще работает в начале строки - PullRequest
4 голосов
/ 11 января 2011

Мне нужно эмулировать поведение \b в начале строки, где я добавляю дополнительные символы в набор, которые считаются границей слова.Прямо сейчас я использую что-то вроде:

"(?<=\\W|\\p{InCJKUnifiedIdeographs})foo"

Это работает так, как мне хотелось бы, , если Я в начале сопоставляемой строки: в этом случае утверждение не выполняетсяи я не получаю удар.То, что я хочу, - это эквивалент соответствия, если я нахожусь в начале строки или перед foo стоит символ, не являющийся словом или идеограф. Но я не могу получить правильное заклинание дляподдержите это.

Есть мысли?Или это невозможно?

Заранее спасибо.

1 Ответ

14 голосов
/ 11 января 2011
"(?<=^|\\W|\\p{InCJKUnifiedIdeographs})foo"

Просто добавьте привязку начала строки к условиям просмотра.

...